Sobes.tech
Junior

Swiftda majburiy qiymat chiqarishni qachon ishlatish kerak?

sobes.tech AI

AIdan javob

İsteğe bağlı tiplərin zorunlu çıxarılması (! istifadə edərək) çox nadir hallarda və yalnız siz tam əminsinizsə, isteğe bağlı dəyərin boş olmayan dəyər saxladığından əminsinizsə istifadə edilməlidir.

Əsas istifadə ssenariləri:

  1. Testlər və prototiplər: Konsepsiyaları sürətli yoxlamaq üçün, tətbiqin nil ilə uğrayacağı kritik deyil.
  2. Açıq şəkildə yanlış vəziyyət: Zorunlu çıxarılmış isteğe bağlı tipdəki nil, proqramın məntiqində kritik bir səhvi göstərirsə və dərhal aşkar edilməlidirsə (məsələn, konfiqurasiya xətası və ya yanlış məlumat vəziyyəti).
  3. forceUnwrap debugging zamanı: Bəzən debugging zamanı istifadə olunur, dəyəri sürətlə yoxlamaq üçün, amma bu müvəqqəti həll yoludur.

Çox diqqətli istifadə nümunəsi:

// Məsələn, `MyView.xib` faylının mövcud olduğundan *əmin olduğunuz* halda
class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Əgər `MyView.xib` mövcud deyilsə, tətbiq çökmə ilə nəticələnəcək.
        // Bu, İŞİDƏN ÇOX TEHLİKƏLİ KODDUR!
        let myView = Bundle.main.loadNibNamed("MyView", owner: self, options: nil)![0] as! UIView
        view.addSubview(myView)
    }
}

Aşağıdakı hallarda zorunlu çıxarış istifadə edilməməlidir:

  • Dəyərin mövcudluğu ilə bağlı şübhələr varsa.
  • İstifadəçi və ya xarici mənbələrdən gələn giriş məlumatlarını işləmək üçün.
  • Əksər prodakşn kodlarında, tətbiqin çökməsi qəbul edilə bilməz.

Əsasən üstün tutulan alternativlər:

  • if let və ya guard let ilə şərti çıxarış.
  • Varsayılan dəyər təmin etmək üçün nil-coalescing operatoru (??).
  • Metod çağırışları və ya xüsusiyyətlərə giriş üçün opsiyonel zəncirləmə (?.).