Qual é a diferença entre var
e val
no Kotlin?
Passei por este link:
https://kotlinlang.org/docs/reference/properties.html
Conforme indicado neste link:
A sintaxe completa de uma declaração de propriedade somente leitura difere de uma mutável de duas maneiras: começa com val em vez de var e não permite um setter.
Mas, pouco antes, há um exemplo que usa um levantador.
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
}
Qual é a diferença exata entre var
e val
?
Por que precisamos dos dois?
Esta não é uma duplicata de variáveis no Kotlin, diferenças com o Java. var vs val? como estou perguntando sobre a dúvida relacionada ao exemplo específico na documentação e não apenas em geral.
result
não pode ser alterado para se referir a uma instância diferente deAddress
, mas a instância a que se refere ainda pode ser modificada. O mesmo seria verdade em Java se você tivesse umfinal Address result = new Address();