class Person(val name:String,var age:Int )
def person = new Person("Kumar",12)
person.age = 20
println(person.age)
Run Code Online (Sandbox Code Playgroud)
这些代码行输出12,即使person.age=20已成功执行.我发现这是因为我使用了def def person = new Person("Kumar",12).如果我使用var或val,则输出为20.我理解scala中的默认值是val.这个:
def age = 30
age = 45
Run Code Online (Sandbox Code Playgroud)
...给出编译错误,因为它默认为val.为什么上面的第一组行不能正常工作,而且还没有错误?
scala ×1