Sobes.tech
Junior

Magyarázza el a 'when' kifejezés fogalmát a Kotlin programozási nyelvben.

sobes.tech MI

Válasz az MI-től

A Kotlin when egy univerzális szerkezeti operátor, amely helyettesíti a hagyományos switch-et más nyelvekben. Kifejezésként (értéket adva vissza) vagy operátorként használható.

Fő funkciók:

  • Értékek összehasonlítása: Megfeleltetés konkrét értékekkel.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Egy"
            "Hello"     -> "Üdvözlet"
            is Long     -> "Hosszú"
            !is String  -> "Nem sztring"
            else        -> "Ismeretlen"
        }
    
  • Típus ellenőrzése (is/!is): Megfeleltetés adatok típusával.

  • Bele tartozás ellenőrzése (in/!in): Ellenőrzés, hogy egy érték tartozik-e egy tartományhoz vagy gyűjteményhez.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Pozitív szám tartományban"
            !in 10..20 -> "Nem a második tartományban"
            else       -> "Egyik sem fentiek közül"
        }
    
  • Argumentum nélkül: Használható rugalmasabb helyettesítésként az if-else if-else láncoknak. A feltételek egymás után értékelődnek.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Mindkettő igaz"
            !x && !y -> "Mindkettő hamis"
            else -> "Keverék"
        }
    
  • Érték visszaadása: Ha a when kifejezésként van használva, akkor kimerítőnek kell lennie (minden lehetséges esetet lefed vagy else ágat tartalmaz).

A when javítja a kód olvashatóságát és biztonságát a hagyományos switch-hez képest.