Avatar ·

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

Bonjour ! J'ai commencé à apprendre Kotlin et je n'arrive pas à comprendre la différence entre `const` et `val`. Apparemment, les deux déclarent des valeurs immuables, mais le compilateur se plaint quand j'essaie d'utiliser `const` à l'intérieur d'une fonction ou avec certaines expressions. Voici un exemple qui me trouble : ```kotlin // Ça fonctionne val name = "John" val currentTime = System.currentTimeMillis() // Mais ça ne fonctionne pas - erreur de compilation const val name2 = "John" const val currentTime2 = System.currentTimeMillis() // Erreur ! ``` Pourquoi `const val currentTime2` ne se compile-t-il pas ? Pourtant, `val` est aussi immuable. Et j'ai aussi remarqué que `const` ne peut être utilisé qu'au niveau du fichier ou à l'intérieur d'un `object`, alors que `val` peut être utilisé n'importe où. Quelle est la différence profonde ici ? Quand faut-il utiliser `const` et quand simplement `val` ? Expliquez-moi, s'il vous plaît, avec des exemples. Je vous en serais très reconnaissant ! <<>>

La différence principale : le moment de l'évaluation et la méthode de stockage

const et val créent tous deux des valeurs immuables (