我想用 Scala 写这个:
var b: Map[String, Int] = Map()
def method() = {
def a_=(i: Int) = b += "method" -> i
// ...
a = 2
}
但这抱怨说 a 没有定义。这是为什么?我以为a = ...
被重写为a_=(...)
.
解决方案:感谢 Jörg,我工作,必须提供 getter 并使方法成为顶级:
var b: Map[String, Int] = Map()
def a_=(i: Int) = b += "method" -> i
def a: Int = ??? // Dummy
def method() = {
// ...
a = 2
}
这编译。