Scalaプログラマーは、この種の記述を知っているはずです。
class Person{
var id = 0
}
var p = new Person
p.id
p.id = 2
に等しい
class Person{
private var _id = 0
def id = _id
def id_=(i: Int) = _id = i
}
val p = new Person
p.id // be equal to invoke id method of class Person
p.id = 2 // be equal to p.id_=(2)
事実上。def id = _id
しかし、getterメソッドにコメントp.id = 2
すると、コンパイルエラーが発生します。
error: value key is not a member of Person
誰かが理由を説明できますか?