Kotlin тилиндеги null коопсуздугу эмне экенин түшүндүрүңүз.
sobes.tech AI
AIден жооп
Null safety — бул Kotlin тилинин функциясы, ал null шилтемелер менен байланышкан каталарды алдын алууга жардам берет. Ал эки түрдүү шилтемелерди түзүү аркылуу ишке ашырылат: nullable (null болууга уруксат берилген) жана non-nullable (null болууга тыюу салынган).
Non-nullable түрлөрү адаттагыча белгиленет:
var nonNullableString: String = "Hello" // null болбойт
Nullable түрлөрү ? белгиси менен белгиленет, типтин атынын артында:
var nullableString: String? = "Hello" // null болушу мүмкүн
nullableString = null
Kotlin nullable түрлөрдү ачык иштетүүнү талап кылат, аларга түздөн-түз кайрылуудан алдын-ала null текшерүүсүз. Бул үчүн төмөнкү механизмдер каралган:
-
Коопсуз чакыруу оператору (
?.): Объектnullэмес болсо гана методду чакырат же мүчөсүнө кайрылат. Эгерnullболсо,nullкайтарат:val length = nullableString?.length // length — Int? же null -
Элвис оператору (
?:): Сол жактагы маанигеnullболсо, алдын ала белгиленген маанини берет:val nonNullLength = nullableString?.length ?: 0 // nonNullLength — Int, эгер nullableString null болсо, 0 -
!!эмес- null тастыктоо оператору: Nullable түрүн non-nullable кылат. Эгер маанисиnullболсо,NullPointerExceptionташтайт. Бул операторду ишенимдүү колдонуу үчүн, маанисиnullэмес деп ишенсе болот:val sureLength = nullableString!!.length // Эгер nullableString null болсо, NullPointerException таштайт -
if-текшерүүлөр: Традициялык
nullтекшерүүifменен жүргүзүлөт. Эгер текшерүү өтсө,smart cast(акылдуу түргө өткөрүү) nullable түрүнnullэмес түргө айлантат:if (nullableString != null) { val length = nullableString.length // Бул учурда nullableString — String катары каралат }
Бул механизмдер null болушу мүмкүн болгон өзгөрмөлөрдү ачык башкарууга мүмкүндүк берет, жана бул программа иштеп жатканда NullPointerException катанын алдын алууга жардам берет.