Каждому методу-установщику требуется метод-геттер в Scala?

Программист на 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, p.id = 2вызовет ошибку компиляции, говоря

error: value key is not a member of Person 

Кто-нибудь может объяснить, почему?

6
задан 爱国者 6 April 2012 в 08:58
поделиться