Kas yra 'nullable' tipai Kotlin ir kaip jie veikia?
sobes.tech AI
Atsakymas iš AI
Nullable tipai Kotlin - tai tipai, kurie gali turėti tiek reikšmę, tiek null. Jie aiškiai pažymėti simboliu ? po tipo pavadinimo.
Veikimas grindžiamas Kotlin tipų sistema, kuri užkerta kelią NullPointerException kompiliacijos metu. Kompiliatorius reikalauja aiškios null patikros prieš kreipiantis į nullable tipo narius.
Pagrindiniai būdai saugiai dirbti su nullable tipais:
-
nullpatikra naudojantif:fun printLength(str: String?) { if (str != null) { println(str.length) // Saugi iškvietimas po `null` patikros } else { println("Eilutė null") } } -
Saugus iškvietimo operatorius (
?.): Grąžinanull, jei objektasnull, kitaip – iškvietimo rezultatą.val safeLength: Int? = str?.length // Jei str null, safeLength bus null -
Elviso operatorius (
?:): Leidžia nurodyti numatytą reikšmę, jei išraiška kairėje yranull.val lengthOrDefault: Int = str?.length ?: 0 // Jei str null, lengthOrDefault bus 0 -
Aiškus ne-null patvirtinimo operatorius (
!!): Paverčia nullable tipą į ne-nullable. Reikia naudoti atsargiai, nes jei reikšmėnull, bus išmestaNullPointerException.val assertedLength: Int = str!!.length // Jei str null, išmes NPE -
let/run/apply/alsofunkcijos su saugiu iškvietimu:str?.let { // Kodas vykdomas tik jei str nėra null println("Eilutės ilgis: ${it.length}") }
Kotlin nullable tipų sistema žymiai didina saugumą ir sumažina NullPointerException atsiradimo tikimybę, palyginti su kalbomis, kur null gali būti priskirtas bet kokiam tipui be aiškios žymėjimo.