Avatar ·

Was ist der Unterschied zwischen var und val in Kotlin? Wann verwendet man was?

Hallo zusammen! Ich habe gerade angefangen, Kotlin nach Java zu lernen, und bin bei der Deklaration von Variablen verwirrt. In Kotlin gibt es zwei Schlüsselwörter: var und val. Ich verstehe, dass beide zum Erstellen von Variablen verwendet werden, kann aber nicht erfassen, wann man das eine und wann das andere verwenden soll.

In Java war ich es gewohnt, dass Variablen immer veränderbar sind, wenn nicht final angegeben ist. Und hier ist es umgekehrt - anscheinend wird val häufiger verwendet, aber ich verstehe nicht warum.

Hier ist ein Beispiel meines Codes, das mich verwirrt:

fun main() {
    var name = "Anna"
    name = "Maria"  // funktioniert
    
    val city = "Moskau"
    // city = "Sankt Petersburg"  // Compiler-Fehler!
    
    var count = 0
    count = count + 1  // funktioniert
    
    val maxCount = 100
    // maxCount = 200  // Compiler-Fehler!
}

Kann mir jemand erklären, wann ich var und wann val verwenden sollte? Und warum wird val in Kotlin als bevorzugt angesehen?