class Person(val name:String,var age:Int )
def person = new Person("Kumar",12)
person.age = 20
println(person.age)
即使成功执行了person.age=20
,这些代码行也会输出12
。我发现发生这种情况是因为我在def person = new Person("Kumar",12)
中使用了def。如果我使用var或val,则输出为20
。我知道在scala中默认的是val。这一点:
def age = 30
age = 45
...gives一个编译错误,因为默认情况下它是val。为什么上面的第一组代码行不能正常工作,但也没有错误?
https://stackoverflow.com/questions/4437373
复制相似问题