Quelle est la différence entre var
et val
à Kotlin?
J'ai parcouru ce lien:
https://kotlinlang.org/docs/reference/properties.html
Comme indiqué sur ce lien:
La syntaxe complète d'une déclaration de propriété en lecture seule diffère d'une déclaration mutable de deux manières: elle commence par val au lieu de var et ne permet pas de définir.
Mais juste avant il y a un exemple qui utilise un 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
}
Quelle est la différence exacte entre var
et val
?
Pourquoi avons-nous besoin des deux?
Ce n'est pas un doublon de variables dans Kotlin, des différences avec Java. var vs val? car je pose des questions sur le doute lié à l'exemple particulier de la documentation et pas seulement en général.
result
ne peut pas être modifié pour faire référence à une autre instance deAddress
, mais l'instance à laquelle il fait référence peut toujours être modifiée. La même chose serait vraie à Java si vous aviez unfinal Address result = new Address();