Avatar ·

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

Bonjour ! Je viens de commencer à apprendre Kotlin après Java et je suis confus au sujet de la déclaration des variables. En Java, j'ai l'habitude que les variables soient déclarées avec un type (int, String) et un modificateur (final — pour les constantes). En Kotlin, je vois deux mots-clés : var et val. J'ai lu que val est l'équivalent de final en Java, et var est une variable mutable ordinaire. Mais en pratique, j'ai des questions. Par exemple, j'ai écrit ce code : ```kotlin fun main() { var name = "Анна" name = "Мария" // ça marche, tout va bien val age = 25 age = 30 // Erreur ! Val cannot be reassigned } ``` Avec val, c'est clair — on ne peut pas réassigner. Mais que faire si val stocke non pas un primitif, mais un objet ? Par exemple : ```kotlin val list = mutableListOf("a", "b") list.add("c") // est-ce que ça marche ? println(list) // affiche [a, b, c] ``` Il s'avère que val n'est pas une constante, mais simplement une référence qui ne peut pas être modifiée ? Ou est-ce que je confonds quelque chose ? Je m'intéresse aussi à : quand est-il préférable d'utiliser var, et quand val ? Est-ce que cela affecte les performances ?