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:
- Testlər və prototiplər: Konsepsiyaları sürətli yoxlamaq üçün, tətbiqin
nililə uğrayacağı kritik deyil. - 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). forceUnwrapdebugging 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 letvə yaguard letilə şərti çıxarış.- Varsayılan dəyər təmin etmək üçün
nil-coalescingoperatoru (??). - Metod çağırışları və ya xüsusiyyətlərə giriş üçün opsiyonel zəncirləmə (
?.).