Jaka jest różnica między var
i val
w Kotlin?
Przejrzałem ten link:
https://kotlinlang.org/docs/reference/properties.html
Zgodnie z tym linkiem:
Pełna składnia deklaracji właściwości tylko do odczytu różni się od zmiennej na dwa sposoby: zaczyna się od val zamiast var i nie pozwala na ustawienie.
Ale tuż przed przykładem jest setter.
fun copyAddress(address: Address): Address {
val result = Address() // there's no 'new' keyword in Kotlin
result.name = address.name // accessors are called
result.street = address.street
// ...
return result
}
Jaka jest dokładna różnica między var
i val
?
Dlaczego potrzebujemy obu?
Jest to nie duplikat od zmiennych w Kotlin, różnic z Java. var vs val? ponieważ pytam o wątpliwości związane z konkretnym przykładem w dokumentacji, a nie tylko ogólnie.
result
nie można go zmienić, aby odwoływał się do innego wystąpieniaAddress
, ale wystąpienie, którego dotyczy, może być nadal modyfikowane. To samo byłoby prawdą w Javie, gdybyś miałfinal Address result = new Address();