Šta su 'nullable' tipovi u Kotlinu i kako funkcionišu?
sobes.tech АИ
Одговор од АИ
Nullable tipovi u Kotlinu su tipovi koji mogu sadržavati i vrednost i null. Oni su eksplicitno označeni simbolom ? nakon imena tipa.
Rad se zasniva na sistemu tipova Kotlin-a, koji sprečava NullPointerException tokom kompilacije. Kompajler zahteva eksplicitnu proveru na null pre pristupa članovima nullable objekta.
Glavni načini sigurnog rada sa nullable tipovima su:
-
Provera na
nullpomoćuif:fun printLength(str: String?) { if (str != null) { println(str.length) // Siguran poziv nakon provere null } else { println("String null") } } -
Operator sigurnog poziva (
?.): Vraćanullako je objekatnull, u suprotnom rezultat poziva.val safeLength: Int? = str?.length // Ako je str null, safeLength će biti null -
Elvis operator (
?:): Omogućava da se obezbedi podrazumevana vrednost u slučaju da je izraz levo od operatoranull.val lengthOrDefault: Int = str?.length ?: 0 // Ako je str null, lengthOrDefault će biti 0 -
Operator eksplicitnog ne-null potvrđivanja (
!!): Pretvara nullable tip u non-nullable. Treba ga koristiti oprezno, jer će bacitiNullPointerExceptionako je vrednostnull.val assertedLength: Int = str!!.length // Bacit će NPE ako je str null -
Funkcije let/run/apply/also sa sigurnim pozivom:
str?.let { // Kod će se izvršiti samo ako str nije null println("Dužina stringa: ${it.length}") }
Sistem nullable tipova u Kotlinu značajno povećava sigurnost i smanjuje verovatnoću pojave NullPointerException u poređenju sa jezicima gde null može biti dodeljen bilo kom tipu bez eksplicitne oznake.