Яка різниця між 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. var vs val? тому що я запитую про сумніви, пов’язані з конкретним прикладом у документації, а не лише загалом.
result
не може бути змінено для посилання на інший екземплярAddress
, але екземпляр, на який він посилається, все одно може бути змінений. Те саме було б і на Яві, якби у вас бувfinal Address result = new Address();