¿Cuál es la diferencia entre var y val en Kotlin? ¿Cuándo usar cada uno?
¡Hola a todos! Acabo de empezar a aprender Kotlin después de Java y estoy confundido con la declaración de variables. En Kotlin hay dos palabras clave: var y val. Entiendo que ambas se usan para crear variables, pero no logro captar cuándo aplicar una y cuándo la otra.
En Java estoy acostumbrado a que las variables siempre son mutables, a menos que se especifique final. Y aquí es al revés: parece que val se usa más a menudo, pero no entiendo por qué.
Aquí hay un ejemplo de mi código que me confunde:
fun main() {
var name = "Anna"
name = "María" // funciona
val city = "Moscú"
// city = "San Petersburgo" // ¡error de compilación!
var count = 0
count = count + 1 // funciona
val maxCount = 100
// maxCount = 200 // ¡error!
}
He leído que val es una referencia inmutable (como final en Java), y var es mutable. Pero no me queda del todo claro.