Kotlinдеги 'nullable' түрлөрү эмне жана алар кандай иштейт?
sobes.tech AI
AIден жооп
Kotlinдеги Nullable типтери - бул мааниси бар жана null болушу мүмкүн болгон типтер. Алар тип аталышынан кийинки ? символу менен так белгиленет.
Иштөө Kotlinдин тип системасына негизделген, ал NullPointerException коду түзүлүшүндө алдын алууга жардам берет. Компилятор nullable типтин мүчөлөрүнө кайрыларда null текшерүүнү талап кылат.
Nullable типтер менен иштөөдө негизги ыкмалар:
-
nullтекшерүүifменен:fun printLength(str: String?) { if (str != null) { println(str.length) // null текшерүүдөн кийин коопсуз чакыруу } else { println("Строка null") } } -
Коопсуз чакыруу оператору (
?.): Объектnullболсо,nullкайтарат, эгер жок болсо, чакыруу натыйжасын кайтарат.val safeLength: Int? = str?.length // Эгер str null болсо, safeLength `null` болот -
Элвис оператору (
?:): Сол жактагы өрнөкnullболсо, алдын ала белгиленген маанини берет.val lengthOrDefault: Int = str?.length ?: 0 // Эгер str null болсо, lengthOrDefault 0 болот -
Ачык эмес
nullдеп ырастоо оператору (!!): Nullable типти не-nullable кылат. Көңүл буруңуз, эгер маанисиnullболсо,NullPointerExceptionчыгарат.val assertedLength: Int = str!!.length // Эгер str null болсо, NPE чыгарат -
let/run/apply/alsoфункциялары жана коопсуз чакыруу:str?.let { // Код `str` null эмес болсо гана иштейт println("Строканын узундугу: ${it.length}") }
Kotlinдеги nullable тип системасы коопсуздукту жогорулатат жана NullPointerException пайда болуу мүмкүнчүлүгүн азайтат, башка тилдерге салыштырмалуу, анда null ар кандай типке так белгисиздиксиз берилиши мүмкүн.