Ինչպես պետք է ստուգել արժեքները null-ով կոդում?
sobes.tech AI
Պատասխան AI-ից
Kotlin-ում nullable տիպերով աշխատելու և null ստուգելու համար օգտագործվում են հետևյալ մոտեցումները՝
-
Անվտանգ կանչի օպերատոր (
?.): Позволяет вызвать մեթոդներ կամ մուտք գործել հատկությունների միայն այն դեպքում, երբ օբյեկտը չիnull։ Եթե օբյեկտըnullէ, ամբողջ կանչը վերադարձնում էnull։ -
Elvis օպերատոր (
?:): Позволяет предоставить արժեք ըստ նախնական, եթե արտահայտությունը ձախ կողմումnullէ։ -
Անվտանգ չհամարող կանչի օպերատոր (
!!): Փոխում է nullable տիպը non-nullable։ Եթե արժեքըnullէ, կբացվիNullPointerException։ Օգտագործումը խիստ չի խորհուրդ տրվում, քանի որ կարող է հանգեցնել ծրագրի կոտրմանը։ -
ifբլոկnullստուգմամբ: Տարածված մեթոդ է, հաճախ օգտագործվում է Kotlin-ի smart cast-ների հետ միասին։
// Անվտանգ կանչի օպերատոր `?.`
val length = text?.length
// Smart cast `null` ստուգումից հետո
if (text != null) {
val length = text.length // text ավտոմատ կերպով փոխարկվում է String (non-nullable)
}
// Elvis օպերատոր `?:`
val nonNullText = text ?: "Նախնական տեքստ"
// Անվտանգ չհամարող կանչի օպերատոր `!!` (խուսափեք հնարավորինս)
val forceLength = text!!.length // Կարող է գցել NullPointerException
Java-ում null ստուգումը կատարվում է բացառապես if պայմանների միջոցով:
// Java
if (text != null) {
int length = text.length();
} else {
// Հաշվարկ, երբ text null է
}