Sobes.tech
Junior

Ինչպես պետք է ստուգել արժեքները null-ով կոդում?

sobes.tech AI

Պատասխան AI-ից

Kotlin-ում nullable տիպերով աշխատելու և null ստուգելու համար օգտագործվում են հետևյալ մոտեցումները՝

  1. Անվտանգ կանչի օպերատոր (?.): Позволяет вызвать մեթոդներ կամ մուտք գործել հատկությունների միայն այն դեպքում, երբ օբյեկտը չի null։ Եթե օբյեկտը null է, ամբողջ կանչը վերադարձնում է null։

  2. Elvis օպերատոր (?:): Позволяет предоставить արժեք ըստ նախնական, եթե արտահայտությունը ձախ կողմում null է։

  3. Անվտանգ չհամարող կանչի օպերատոր (!!): Փոխում է nullable տիպը non-nullable։ Եթե արժեքը null է, կբացվի NullPointerException։ Օգտագործումը խիստ չի խորհուրդ տրվում, քանի որ կարող է հանգեցնել ծրագրի կոտրմանը։

  4. 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 է
}