Sobes.tech
Junior — Middle

Aké sú rozdiely medzi kľúčovými slovami const val a val v Kotlin?

sobes.tech AI

Odpoveď od AI

V Kotlinu, kľúčové slovo val označuje nezmeniteľnú premennú (len na čítanie), ktorej hodnotu je možné priradiť raz pri inicializácii, ale samotná hodnota môže byť vypočítaná počas behu.

const val je konštanta v čase kompilácie, ktorá musí byť primitívneho typu alebo reťazec a musí byť inicializovaná hodnotou známa v čase kompilácie. Takéto konštanty možno použiť napríklad v anotáciách alebo ako parametre vyžadujúce konštanty.

Hlavné rozdiely:

  • const val je vždy statická konštanta, dostupná na úrovni triedy (len v objektoch alebo na úrovni vrchu).
  • val je obyčajná nezmeniteľná vlastnosť, ktorá môže byť vypočítaná dynamicky.

Príklad:

const val MAX_COUNT = 10 // konštanta v čase kompilácie
val currentTime = System.currentTimeMillis() // hodnota vypočítaná počas behu