Was ist der Unterschied zwischen var
und val
in Kotlin?
Ich habe diesen Link durchgesehen:
https://kotlinlang.org/docs/reference/properties.html
Wie auf diesem Link angegeben:
Die vollständige Syntax einer schreibgeschützten Eigenschaftsdeklaration unterscheidet sich in zweierlei Hinsicht von einer veränderlichen: Sie beginnt mit val anstelle von var und lässt keinen Setter zu.
Aber kurz bevor es ein Beispiel gibt, das einen Setter verwendet.
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
}
Was ist der genaue Unterschied zwischen var
und val
?
Warum brauchen wir beide?
Dies ist kein Duplikat von Variablen in Kotlin, Unterschiede zu Java. var vs val? Ich frage nach dem Zweifel in Bezug auf das jeweilige Beispiel in der Dokumentation und nicht nur allgemein.
result
kann nicht geändert werden, um auf eine andere Instanz von zu verweisenAddress
, aber die Instanz, auf die sie verweist, kann trotzdem geändert werden. Das gleiche würde in Java gelten, wenn Sie einefinal Address result = new Address();