Sobes.tech
Junior

Swift-də məcburi dəyər çıxarışını nə vaxt istifadə etməlisiniz?

sobes.tech Süni İntellekt

AI-dan cavab

İstəyə bağlı tiplərin zorunlu çıxarılması (! istifadə etməklə) çox nadir hallarda və yalnız siz tam əminsinizsə, istəyə 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ış istəyə 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 bir 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 olası 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ə (?.).