Sobes.tech
Junior

Kas ir 'nullable' tipi Kotlin un kā tie darbojas?

sobes.tech AI

Atbilde no AI

Nullable tipi Kotlin - tas tipi, kuri var būt satur gan vērtību, gan null. Tie tieši norādīti ar simbolu ? pēc tipa nosaukuma.

Darbojas, balstoties uz Kotlin tipu sistēmu, kas novērš NullPointerException kompilācijas laikā. Kompilators pieprasa skaidru null pārbaudi pirms piekļuves nullable tipa locekļiem.

Galvenie veidi, kā droši strādāt ar nullable tipiem:

  • null pārbaude, izmantojot if:

    fun printLength(str: String?) {
        if (str != null) {
            println(str.length) // Droša izsaukšana pēc `null` pārbaudes
        } else {
            println("Rinda ir null")
        }
    }
    
  • Drošas izsaukšanas operators (?.): Atgriež null, ja objekts ir null, citādi – izsaukuma rezultātu.

    val safeLength: Int? = str?.length // Ja str ir null, safeLength būs null
    
  • Elvisa operators (?:): Atļauj norādīt noklusējuma vērtību, ja izteiksme pa kreisi ir null.

    val lengthOrDefault: Int = str?.length ?: 0 // Ja str ir null, lengthOrDefault būs 0
    
  • Skaidrs ne-null apstiprinājuma operators (!!): Pārvērš nullable tipu ne-nullable. Jālieto uzmanīgi, jo, ja vērtība ir null, tas izraisīs NullPointerException.

    val assertedLength: Int = str!!.length // Ja str ir null, izraisīs NPE
    
  • let/run/apply/also funkcijas ar drošu izsaukumu:

    str?.let {
        // Kods tiks izpildīts tikai, ja str nav null
        println("Rindas garums: ${it.length}")
    }
    

Kotlin nullable tipu sistēma būtiski uzlabo drošību un samazina NullPointerException rašanās iespēju, salīdzinot ar valodām, kur null var tikt piešķirts jebkuram tipam bez skaidras norādes.