Junior
Millal peaks Swiftis kasutama sunnitud väärtuste väljavõtmist?
sobes.tech AI
Vastus AI-lt
sunnitud valikuli tüübi välja võtmine (kasutades !) tuleks kasutada äärmiselt harva ja ainult siis, kui olete täiesti kindel, et valikuliselt on mitte-tühi väärtus.
Peamised kasutusjuhtumid:
- Testid ja prototüübid: Kiire kontseptsioonide kontrollimine, kui pole kriitiline, et rakendus võib
nil-i tõttu kokku kukkuda. - Selge vale olek: Kui
nil-i sunniviisiline välja võtmine näitab kriitilist viga programmi loogikas, mida tuleb kohe avastada (näiteks konfiguratsiooni viga või ebaõige andmeteadmine). Tootmises on sellised vead parem käsitleda elegantsemalt. forceUnwrapsilumiseks: Mõnikord võib seda kasutada silumiseks, et kiiresti väärtust kontrollida, kuid see on ajutine lahendus.
Näide (väga ettevaatlik kasutus):
// Näide, kui olete *absoluutselt* kindel, et nib-fail eksisteerib
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Kui MyView.xib ei eksisteeri, rakendus kukub.
// See on OHTLIK kood tootmises!
let myView = Bundle.main.loadNibNamed("MyView", owner: self, options: nil)![0] as! UIView
view.addSubview(myView)
}
}
Ei tohiks kasutada sunniviisilist välja võtmist järgmistes olukordades:
- Kui on kahtlusi väärtuse olemasolu osas.
- Kui töötlete kasutaja sisendandmeid või väliseid allikaid.
- Enamikus tootmiskoodis, kus rakenduse kokku kukkumine on vastuvõetamatu.
Eelistatud alternatiivid:
if letvõiguard lettingimuslikuks välja võtmiseks.nil-coalescingoperaator (??) vaikimisi väärtuse määramiseks.- Optional chaining (
?.) meetodite või omaduste kutsumiseks tingimuslikult.