Kotlin-də 'nullable' tiplər nədir və necə işləyirlər?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də nullable tiplər, həm dəyər, həm də null saxlaya bilən tiplərdir. Onlar, tip adından sonra ? simvolu ilə açıq şəkildə göstərilir.
İş prinsipi, Kotlin-in tip sisteminə əsaslanır və bu sistem, NullPointerException-u kompilyasiya zamanı qarşısını alır. Kompilyator, nullable tipli obyektin üzvlərinə müraciət etməzdən əvvəl açıq şəkildə null yoxlaması tələb edir.
Nullable tiplərlə təhlükəsiz işləmək üçün əsas yollar:
-
nullyoxlamasıifilə:fun printLength(str: String?) { if (str != null) { println(str.length) // Null yoxlamasından sonra təhlükəsiz çağırış } else { println("String null") } } -
Təhlükəsiz çağırış operatoru (
?.): Əgər obyektnull-dırsa,nullqaytarır, əks halda çağırışın nəticəsini.val safeLength: Int? = str?.length // Əgər str null-dursa, safeLength null olacaq -
Elvis operatoru (
?:): Sol tərəfdəki ifadənull-dırsa, standart dəyər təqdim edir.val lengthOrDefault: Int = str?.length ?: 0 // Əgər str null-dursa, lengthOrDefault 0 olacaq -
Açıq null olmayan təsdiq operatoru (
!!): Nullable tipi null olmayan tipe çevirir. Diqqətlə istifadə edilməlidir, çünki dəyərnull-dırsa,NullPointerExceptionatacaq.val assertedLength: Int = str!!.length // Əgər str null-dursa, NPE atacaq -
let/run/apply/alsofunksiyaları və təhlükəsiz çağırış:str?.let { // Kod yalnız `str` null olmadıqda icra olunacaq println("String uzunluğu: ${it.length}") }
Kotlin-in nullable tiplər sistemi, təhlükəsizliyi əhəmiyyətli dərəcədə artırır və null-ın hər hansı bir tipe açıq şəkildə təyin edilmədən təyin oluna bilməsi ilə əlaqəli NullPointerException ehtimalını azaldır.