Sobes.tech
Junior

Objasnite koncept izraza 'when' u programskom jeziku Kotlin.

sobes.tech АИ

Одговор од АИ

when u Kotlinu je univerzalni strukturni operator koji zamenjuje klasični switch u drugim jezicima. Može se koristiti kao izraz (koji vraća vrednost) ili kao operator.

Glavne mogućnosti:

  • Poređenje vrednosti: Usklađivanje sa određenim vrednostima.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Jedan"
            "Hello"     -> "Pozdrav"
            is Long     -> "Dugačko"
            !is String  -> "Nije niz"
            else        -> "Nepoznato"
        }
    
  • Provera tipa (is/!is): Usklađivanje sa tipovima podataka.

  • Provera pripadnosti (in/!in): Provera da li vrednost pripada opsegu ili kolekciji.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Pozitivan broj u opsegu"
            !in 10..20 -> "Nije u drugom opsegu"
            else       -> "Ni jedan od prethodnih"
        }
    
  • Bez argumenta: Koristi se kao fleksibilnija zamena za lanac if-else if-else. Uslovi se procenjuju redom.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Oba tačna"
            !x && !y -> "Oba netačna"
            else -> "Mešovito"
        }
    
  • Vraćanje vrednosti: Ako se when koristi kao izraz, mora biti iscrpan (da pokriva sve moguće slučajeve ili da ima granu else).

when poboljšava čitljivost i sigurnost koda u poređenju sa tradicionalnim switch.