Sobes.tech
Junior

Paaiškinkite 'when' išraiškos sampratą Kotlin programavimo kalboje.

sobes.tech AI

Atsakymas iš AI

Kotlin when yra universalus struktūrinis operatorius, kuris pakeičia klasikinius switch kitose kalbose. Jis gali būti naudojamas kaip išraiška (grąžinanti reikšmę) arba kaip operatorius.

Pagrindinės galimybės:

  • Reikšmių palyginimas: Atitikimas su konkrečiomis reikšmėmis.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Vienas"
            "Hello"     -> "Pasveikinimas"
            is Long     -> "Ilgas"
            !is String  -> "Nėra eilutė"
            else        -> "Nežinomas"
        }
    
  • Tipo patikrinimas (is/!is): Atitikimas duomenų tipams.

  • Apimties patikrinimas (in/!in): Patikrinimas, ar reikšmė priklauso diapazonui arba kolekcijai.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Teigiamas skaičius diapazone"
            !in 10..20 -> "Nėra antro diapazono"
            else       -> "Nė vienas iš aukščiau"
        }
    
  • Be argumento: Naudojama kaip lankstesnė if-else if-else grandinės pakaitalas. Sąlygos vertinamos eilės tvarka.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Abu teisingi"
            !x && !y -> "Abu klaidingi"
            else -> "Mišrus"
        }
    
  • Reikšmės grąžinimas: Jei when naudojamas kaip išraiška, jis turi būti išsamus (apimti visas galimas situacijas arba turėti else šaką).

when pagerina kodo skaitomumą ir saugumą lyginant su tradiciniu switch.