Sobes.tech
Junior — Middle

Jaké jsou rozdíly mezi klíčovými slovy const val a val v Kotlinu?

sobes.tech AI

Odpověď od AI

V Kotlinu klíčové slovo val označuje nem měnitelnou proměnnou (pouze pro čtení), jejíž hodnota může být při inicializaci přiřazena jednou, ale samotná hodnota může být vypočtena během běhu.

const val je konstanta při kompilaci, která musí být primitivního typu nebo řetězcem a musí být inicializována hodnotou známou v době kompilace. Takové konstanty lze například použít v anotacích nebo jako parametry vyžadující konstanty.

Hlavní rozdíly:

  • const val je vždy statická konstanta, dostupná na úrovni třídy (pouze v objektech nebo na úrovni vrchu).
  • val je obyčejná neměnitelná vlastnost, která může být vypočtena dynamicky.

Příklad:

const val MAX_COUNT = 10 // konstanta při kompilaci
val currentTime = System.currentTimeMillis() // hodnota vypočtená při běhu