case class Test(kind: Int) {
val ifX = if (isX) "is X" else "not X"
val isX = kind == 1
}
val test = Test(1)
println("ifX=%s, isX=%b".format(test.ifX, test.isX))
爲什麼這段代碼打印: IFX =不是X,ISX =真奇怪的行爲
當是舉 「VAL IFX」 之前 「IFX」 這是確定(打印IFX =爲X)
編輯:我知道如何解決這個問題。我不明白爲什麼編譯器不會在這種情況下發出警告或錯誤。
不知道有關scala的任何信息,我會猜想ifX在isX之前被初始化。嘗試顛倒你的聲明的順序。 – 2012-02-08 20:41:29