Sobes.tech
Junior — Middle

Je hodnota typu val nezmeniteľná po jej vyhlásení?

sobes.tech AI

Odpoveď od AI

V Kotlinu znamená kľúčové slovo val nemennú referenciu, teda po priradení hodnoty premennej deklarovanej s val ju nemožno zmeniť na iný objekt. To však neznamená, že samotný objekt, na ktorý val odkazuje, je nemenný. Ak je objekt zmeniteľný (napríklad MutableList), jeho vnútorný stav môže byť zmenený, aj keď referencia val sa nezmení.

Príklad:

val list = mutableListOf(1, 2, 3)
list.add(4) // Toto je povolené, obsah zoznamu sa mení

// list = mutableListOf(5, 6) // Chyba: nemožno znovu priradiť `val`

Takže, val garantuje nemennosť referencie, ale nie objektu.