Kotlin tilida null xavfsizligi nima ekanligini tushuntiring.
sobes.tech AI
AIdan javob
Null xavfsizligi — bu Kotlin tilining null referenslari bilan bog‘liq xatolarni oldini oladigan funksiyasidir. Bu ikki turdagi referenslar yaratish orqali amalga oshiriladi: nullable (nullga ruxsat berilgan) va non-nullable (nullga ruxsat berilmagan).
Non-nullable turlar odatdagi tarzda e'lon qilinadi:
var nonNullableString: String = "Hello" // null bo‘lishi mumkin emas
Nullable turlar esa tip nomidan keyin ? belgisidan foydalanib e'lon qilinadi:
var nullableString: String? = "Hello" // null bo‘lishi mumkin
nullableString = null
Kotlin nullable turlar bilan to‘g‘ridan-to‘g‘ri ularga murojaat qilishdan oldin null tekshiruvi qilishni talab qiladi. Buning uchun quyidagi mexanizmlar taqdim etilgan:
-
Xavfsiz chaqirish operatori (
?.): Ob'ektnullemasligini tekshirganda, metodni chaqiradi yoki xususiyatga murojaat qiladi; aks holda,nullqaytaradi.val length = nullableString?.length // length `Int?` yoki `null` -
Elvis operatori (
?:): Agar chap tarafdagi ifodanullbo‘lsa, standart qiymatni taqdim etadi.val nonNullLength = nullableString?.length ?: 0 // nonNullLength `Int`, nullableString null bo‘lsa 0 -
!!- null bo‘lmagan tasdiqlash operatori: Nullable turini non-nullable ga o‘zgartiradi. Agar qiymatnullbo‘lsa,NullPointerExceptionxatosini chiqaradi. Bu, dasturchi qiymatnullemasligiga ishonch hosil qilgan hollarda ishlatiladi.val sureLength = nullableString!!.length // nullableString null bo‘lsa, NullPointerException chiqaradi -
iftekshiruvi: An'anaviynulltekshiruvi bilanifishlatiladi. Kompilyatornullturininon-nullablega aqlli tarzda o‘tkazadi (smart cast) agar tekshirish muvaffaqiyatli bo‘lsa.if (nullableString != null) { val length = nullableString.length // Bu yerda nullableString String sifatida qabul qilinadi }
Ushbu mexanizmlar, o‘zgaruvchi null bo‘lishi mumkin bo‘lgan holatlarni aniq boshqarishga imkon beradi va ishga tushirish vaqtida NullPointerException ehtimolini sezilarli darajada kamaytiradi.