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:
- 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ış 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). forceUnwrapdebugging 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 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ə (
?.).