Paaiškinkite, kas yra null safety Kotlin kalboje.
sobes.tech AI
Atsakymas iš AI
Null safety — tai Kotlin kalbos funkcija, kuri užkerta kelią klaidoms, susijusioms su null nuorodomis. Tai pasiekiama sukuriant dvi nuorodų rūšis: nullable (leidžiančias null) ir non-nullable (neleidžiančias null).
Non-nullable tipai deklaruojami įprastai:
var nonNullableString: String = "Hello" // Negali būti null
Nullable tipai deklaruojami naudojant simbolį ? po tipo pavadinimo:
var nullableString: String? = "Hello" // Gali būti null
nullableString = null
Kotlin reikalauja aiškiai tvarkyti nullable tipus, užkertant kelią tiesioginiam jų narių naudojimui be išankstinio null patikrinimo. Tam naudojami šie mechanizmai:
-
Saugus iškvietimo operatorius (
?.): Iškviečia metodą arba pasiekia savybę tik tuo atveju, jei objektas nėranull. Kitaip, grąžinanull:val length = nullableString?.length // length bus Int? arba null -
Elvis operatorius (
?:): Teikia numatytąją reikšmę, jei išraiška kairėje yranull:val nonNullLength = nullableString?.length ?: 0 // nonNullLength bus Int, 0 jei nullableString yra null -
!!-o ne-null patvirtinimo operatorius: Paverčia nullable tipą į non-nullable. Jei reikšmėnull, išmetaNullPointerException. Naudojamas, kai programuotojas įsitikinęs, kad reikšmė nėranull:val sureLength = nullableString!!.length // Išmes `NullPointerException`, jei nullableString yra null -
if patikrinimai: Tradicinis
nullpatikrinimas naudojantif. Smart cast (protingas tipų konvertavimas) vyksta ponullpatikrinimo, jei jis pavyksta:if (nullableString != null) { val length = nullableString.length // Čia nullableString laikomas kaip String }
Šie mechanizmai leidžia aiškiai valdyti situacijas, kai kintamasis gali būti null, kas žymiai sumažina NullPointerException atsiradimo tikimybę programos vykdymo metu.