我想记住这个: def fib(n: Int) = if(n <= 1) 1 else fib(n-1) + fib(n-2) println(fib(100)) // times out 所以我写了这个,这令人惊讶的编译和工作(我感到惊讶,因为fib引用本身的声明): case class Memo[A,B](f: A => B) extends (A => B) { private val cache = mutable.Map.empty[A, B] def apply(x: A) = cache getOrElseUpdate (x, f(x)) } val fib: Memo[Int, BigInt] = Memo { case 0 => 0 […]
当我使用this关键字来访问一个类中的非静态variables时,Java不会给出任何错误。 但是当我不使用它时,Java会给出一个错误。 为什么我要用this ? 我知道什么时候应该正常使用this ,但这个例子与正常用法有很大的不同。 例: class Foo { // int a = b; // gives error. why ? int a = this.b; // no error. why ? int b; int c = b; int var1 = this.var2; // very interesting int var2 = this.var1; // very interesting }