Mi az a 'nullable' típus Kotlinben, és hogyan működik?
sobes.tech MI
Válasz az MI-től
A Kotlinben a nullable típusok olyan típusok, amelyek értéket vagy null-t tartalmazhatnak. Ezeket kifejezetten a típus neve után írt ? szimbólummal jelöljük.
A működés a Kotlin típus rendszerén alapul, amely megakadályozza a NullPointerException-t fordítási időben. A fordító explicit null ellenőrzést követel meg, mielőtt hozzáférne egy nullable típusú objektum tagjaihoz.
A nullable típusok biztonságos kezelésének fő módszerei:
-
nullellenőrzéseif-vel:fun printLength(str: String?) { if (str != null) { println(str.length) // Biztonságos hívás null ellenőrzés után } else { println("String null") } } -
Biztonságos hívás operátor (
?.): Visszaadja anull-t, ha az objektumnull, különben a hívás eredményét.val safeLength: Int? = str?.length // Ha str null, safeLength null lesz -
Elvis operátor (
?:): Alapértelmezett értéket ad, ha a bal oldali kifejezésnull.val lengthOrDefault: Int = str?.length ?: 0 // Ha str null, akkor 0 -
Explicit nem-null állítás operátor (
!!): Nullable típust nem-null típusra alakít. Óvatosan kell használni, mertnullérték eseténNullPointerException-t dob.val assertedLength: Int = str!!.length // Dob NPE-t, ha str null -
let/run/apply/alsofunkciók biztonságos hívással:str?.let { // Csak akkor fut le, ha str nem null println("A szöveg hossza: ${it.length}") }
A Kotlin nullable típus rendszere jelentősen növeli a biztonságot, és csökkenti a NullPointerException előfordulásának valószínűségét azokhoz a nyelvekhez képest, ahol a null érték bármely típushoz hozzárendelhető anélkül, hogy kifejezetten jeleznénk.