Ce sunt tipurile 'nullable' în Kotlin și cum funcționează?
sobes.tech AI
Răspuns de la AI
Tipurile nullable în Kotlin sunt tipuri care pot conține atât o valoare, cât și null. Ele sunt indicate explicit prin simbolul ? după numele tipului.
Funcționarea se bazează pe sistemul de tipuri al Kotlin, care previne NullPointerException în timpul compilării. Compilatorul necesită o verificare explicită a null înainte de a accesa membrii unui obiect de tip nullable.
Principalele modalități de a lucra în siguranță cu tipurile nullable sunt:
-
Verificarea
nullcuif:fun printLength(str: String?) { if (str != null) { println(str.length) // Apel sigur după verificarea null } else { println("Șir null") } } -
Operatorul de apel sigur (
?.): Returneazănulldacă obiectul estenull, altfel rezultatul apelului.val safeLength: Int? = str?.length // Dacă str este null, safeLength va fi null -
Operatorul Elvis (
?:): Permite furnizarea unei valori implicite în cazul în care expresia din stânga operatorului estenull.val lengthOrDefault: Int = str?.length ?: 0 // Dacă str este null, lengthOrDefault va fi 0 -
Operatorul de afirmare explicită non-null (
!!): Transformă un tip nullable într-unul non-nullable. Se folosește cu precauție, deoarece va arunca oNullPointerExceptiondacă valoarea estenull.val assertedLength: Int = str!!.length // Va arunca NPE dacă str este null -
Funcțiile let/run/apply/also cu apel sigur:
str?.let { // Codul se va executa doar dacă str nu este null println("Lungimea șirului: ${it.length}") }
Sistemul de tipuri nullable al Kotlin crește semnificativ siguranța și reduce probabilitatea apariției NullPointerException comparativ cu limbajele în care null poate fi atribuit oricărui tip fără o indicație explicită.