Je comprends dans Kotlin const val
est utilisé pour déclarer des constantes et des val
est pour les propriétés en lecture seule. Cependant, je me demande dans le cas suivant, qui est plus approprié à utiliser.
Supposons que j'ai un fragment qui a besoin d'une clé à utiliser pour saveInstanceState
et restoreInstanceState
. Je me demande lequel des 2 options suivantes est la meilleure:
Option 1:
class MyFragment {
private val MY_KEY = "my_key"
...
}
Option 2:
private const val MY_KEY = "my_key" // declared in the same file.
class MyFragment {
...
}
Je préfère le #l'option 2 car il est clairement indiqué que MY_KEY
est une constante, et la valeur est déterminée au moment de la compilation. Toutefois, puisqu'il déclaré sur le haut niveau, il en coûte une classe c'est à dire MyFragmentKt
(à supposer que le nom de fichier MyFragment.kt
) à être créé dans le code java compilé. Dans #l'option 1, pas de classe supplémentaire est généré et bien qu' MY_KEY
s'valeur va être affecté à l'exécution et non constante, qui ne fait aucune différence dans la façon dont il est utilisé dans ce cas précis.
Ainsi, bien que personnellement, je préfère #option 2, mon analyse me fait penser à #l'option 1 n'est pas le pire, si ce n'est mieux. Je me demande comment les autres les développeurs de réfléchir à ce sujet et si il y a d'autres avantages d' #option 2 que je n'ai pas pensé. Merci.