scala case class var val

时间:2015-07-03 02:10:01

标签: scala case var

任何人都可以用我的案例类解释这种奇怪的行为吗?

case class  Dai(var g :Int) {
  def getG() = g
}

val dai: Dai = Dai(20)

dai.g = 30
// why v2 difference with getGet
val v2 = dai.getG  // 30
var getGet = dai.getG // 20

2 个答案:

答案 0 :(得分:1)

Intellij工作表有这个问题 Intellij Worksheet

但不是来自REPL REPL

必须与Intellij如何运行工作表有关?

答案 1 :(得分:0)

在运行2.11.2的系统上不会发生这种情况。最有可能是通过升级您的发行版来修复的错误。

scala> case class  Dai(var g :Int) {
     |   def getG() = g
     | }
defined class Dai

scala> 

scala> val dai: Dai = Dai(20)
dai: Dai = Dai(20)

scala> 

scala> dai.g = 30
dai.g: Int = 30

scala> // why v2 difference with getGet

scala> val v2 = dai.getG  // 30
v2: Int = 30

scala> var getGet = dai.getG // 20
getGet: Int = 30