Qual é a diferença entre var e val em Kotlin? Quando usar cada um?
Olá a todos! Comecei a estudar Kotlin depois de Java e fiquei confuso sobre a declaração de variáveis. Em Kotlin, existem duas palavras-chave: var e val. Entendo que ambas são usadas para criar variáveis, mas não consigo entender quando usar uma ou outra.
Em Java, estou acostumado que as variáveis são sempre mutáveis, a menos que seja especificado final. Aqui é o oposto — parece que val é usado com mais frequência, mas não entendo por quê.
Aqui está um exemplo do meu código que me confunde:
fun main() {
var name = "Anna"
name = "Maria" // funciona
val city = "Moscou"
// city = "São Petersburgo" // erro de compilação!
var count = 0
count = count + 1 // funciona
val maxCount = 100
// maxCount = 200 // erro!
}
Li que val é uma referência imutável (como final em Java), e var é mutável. Mas não está totalmente claro para mim