0

我的一位同事向我展示了一个有趣的片段,其中在对象中声明的 var 没有被对象的成员改变。如果有人解释为什么它会这样,那就太好了。代码如下:

object SomeObject{
  var count = 1
  def addToCount = count + 1
  def printCurrentCount:Unit = {addToCount;println(count)}
}

// Exiting paste mode, now interpreting.

defined module SomeObject

scala> SomeObject.printCurrentCount
1

不应该printCurrentCount将变异的 var 计数打印为 2?

4

1 回答 1

5

addToCount的计数不加 1(或任何东西)。它计算count + 1. (与 Java 相同......)

我想你的意思是:

...
def addToCount { count += 1 }
...
于 2013-07-02T02:48:00.170 回答