Sobes.tech
Junior

Kotlin proqramlaşdırma dilində 'when' ifadəsinin anlayışını izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də when, digər dillərdə klassik switch-in yerini tutan ümumi struktur operatorudur. O, ifadə kimi (dəyər qaytaran) və ya operator kimi istifadə oluna bilər.

Əsas imkanlar:

  • Dəyərlərin müqayisəsi: Müəyyən dəyərlərlə uyğunluq.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Bir"
            "Hello"     -> "Salam"
            is Long     -> "Uzun"
            !is String  -> "String deyil"
            else        -> "Naməlum"
        }
    
  • Növ yoxlaması (is/!is): Məlumat növləri ilə uyğunluq.

  • İnklüzivlik yoxlaması (in/!in): Bir aralıq və ya kolleksiyaya daxil olub-olmadığını yoxlama.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Müsbət ədəd aralıqda"
            !in 10..20 -> "İkinci aralıqda deyil"
            else       -> "Yuxarıdakılardan heç biri"
        }
    
  • Sitat olmadan: Daha çevik if-else if-else zənciri üçün əvəz kimi istifadə olunur. Şərtlər ardıcıllıqla qiymətləndirilir.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Hər ikisi doğru"
            !x && !y -> "Hər ikisi yanlış"
            else -> "Qarışıq"
        }
    
  • Dəyər qaytarılması: Əgər when ifadə kimi istifadə olunursa, o, tam olmalıdır (bütün mümkün hallar əhatə etməli və ya else bloku olmalıdır).

when ənənəvi switch-ə nisbətən kodun oxunuşunu və təhlükəsizliyini artırır.