Avatar ·

Quelle est la différence entre var et val en Kotlin ? Quand utiliser quoi ?

Bonjour à tous ! Je viens de commencer à apprendre Kotlin après Java et je suis confus au sujet de la déclaration des variables. En Kotlin, il y a deux mots-clés : var et val. Je comprends que les deux sont utilisés pour créer des variables, mais je n'arrive pas à saisir quand utiliser l'un ou l'autre.

En Java, j'avais l'habitude que les variables soient toujours mutables, sauf si final était spécifié. Ici, c'est l'inverse — apparemment val est utilisé plus souvent, mais je ne comprends pas pourquoi.

Voici un exemple de mon code qui me trouble :

fun main() {
    var name = "Анна"
    name = "Мария"  // fonctionne
    
    val city = "Москва"
    // city = "Санкт-Петербург"  // erreur de compilation !
    
    var count = 0
    count = count + 1  // fonctionne
    
    val maxCount = 100
    // maxCount = 200  // erreur !
}

J'ai lu que val est une référence immuable (comme final en Java), et var est mutable. Mais je ne comprends pas tout à fait