Какая разница между var
и val
в Котлине?
Я прошел по этой ссылке:
https://kotlinlang.org/docs/reference/properties.html
Как указано по этой ссылке:
Полный синтаксис объявления свойства только для чтения отличается от изменяемого в двух отношениях: он начинается с val вместо var и не допускает установки.
Но перед этим есть пример, который использует сеттер.
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
}
Какая точная разница между var
и val
?
Зачем нам оба?
Это не является дубликатом из переменных в Котлин, различия с Java. вар против вал? как я спрашиваю о сомнениях, связанных с конкретным примером в документации, а не только в целом.
result
не может быть изменен для ссылки на другой экземплярAddress
, но экземпляр, на который он ссылается, все еще может быть изменен. То же самое было бы в Java, если бы у вас былfinal Address result = new Address();