x.m
является изменяемым.
Действителен следующий код:
class MyClass (var m: Int) {}
val x : MyClass = new MyClass(3)
println(x.m)
x.m = 7
println(x.m)
val содержит переменную, которая не может быть изменена, но в этом случае онане делает это постоянным.Действительно, он может иметь изменяемые внутренние поля (как в этом случае через var ).Концептуально, val ue x
владеет неизменным указателем на переменную x.m
(т.е. вы не можете изменить контейнер, на который ссылается x.m
), но само целое число (т.е.содержимое контейнера) является изменчивым.
Похожие: В чем разница между определениями var и val в Scala?