Quelle est la différence entre “const” et “val”?
J'ai lu récemment sur le const
mot-clé, et je suis tellement confus! Je ne trouve pas de différence entre elle et le val
mot-clé, je veux dire, on peut utiliser les deux pour faire un immuable variable, est-il autre chose que je suis absent?
Vous devez vous connecter pour publier un commentaire.
const
s à la compilation des constantes de temps. Ce qui signifie que leur valeur doit être affectée au cours de la compilation, à la différence deval
s, où il peut être fait au moment de l'exécution.Cela signifie, que
const
s ne peut jamais être affecté à une fonction ou à tout constructeur de la classe, mais seulement à unString
ou primitif.Par exemple:
const val foo = "Hello world"
etval bar = "Hello world"
? Sont-ils les mêmes?const
valeurs va juste être complètement incorporé lors de la compilation.const val
au lieu de simplementconst
? Il me semble que leval
mot-clé est totalement superflu dans ce contexte, depuisconst var
serait absurde sur son visage.const val
est souligné de rouge avec un message:Modifier 'const' is not applicable to 'local variable'
l'intérieur d'une fonction.const val
,const
est un modificateur surval
plutôt que d'un mot-clé. Modificateurs > mots-clés. D'autres exemples de cette même conception sont,annotation/enum/data class
,private val
,inline fun
, etc.Juste pour ajouter à Luka réponse:
Source: La documentation officielle
Vous pouvez transformer le Kotlin à Java.
Ensuite, vous pouvez voir const a un plus statique modificateur de val.
Le code simple comme ça.
Kotlin:
À Java(Portion):
const
est supprimé, il donne lieu à une autre fichier Java?