Sobes.tech
Junior

Երբ պետք է օգտագործել ուժեղացված արժեքների հանելը Swift-ում?

sobes.tech AI

Պատասխան AI-ից

Անհրաժեշտ է շատ հազվադեպ օգտագործել պարտադիր արտահանումը ընտրական տիպերի (օգտագործելով !) և միայն այն դեպքերում, երբ դուք լիովին վստահ եք, որ ընտրական արժեքը պարունակում է ոչ դատարկ արժեք:

Հիմնական օգտագործման սցենարներ՝

  1. Թեստեր և պրոտոտիպեր: Արագ գաղափարների ստուգում, երբ կարևոր չէ, որ ծրագիրը կարող է ձախողվել nil-ով:
  2. Ապացուցված սխալ վիճակ: Երբ nil-ը պարտադիր ընտրական տիպում ցույց է տալիս ծրագրի տրամաբանության մեջ լուրջ սխալ, որը պետք է անմիջապես հայտնաբերվի (օրինակ՝ կոնֆիգուրացիայի սխալ կամ տվյալների սխալ վիճակ):
  3. forceUnwrap դեբագինգում: Երբեմն օգտագործվում է դեբագինգի ժամանակ, որպեսզի արագ ստուգվի արժեքը, բայց դա ժամանակավոր լուծում է:

Նմուշ (շատ զգուշավոր օգտագործում).

// Օրինակ, երբ դուք *ամբողջությամբ* վստահ եք, որ `MyView.xib` ֆայլը գոյություն ունի
class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Եթե `MyView.xib`-ը չկա, ծրագիրը կկործանվի:
        // Սա ՀԱՄԱՐՏԵՂԵՑԻ Կոդ է արտադրությունում!
        let myView = Bundle.main.loadNibNamed("MyView", owner: self, options: nil)![0] as! UIView
        view.addSubview(myView)
    }
}

Մի օգտագործեք պարտադիր արտահանումը հետևյալ դեպքերում:

  • Երբ կա կասկած արժեքի ներկայության մասին:
  • Օգտագործողի կամ արտաքին աղբյուրներից հնարավոր մուտքային տվյալների մշակման համար:
  • Արտադրության մեծ մասում, որտեղ ծրագրի կոտրվելը անընդունելի է:

Նախընտրելի այլընտրանքներ՝

  • if let կամ guard let պայմանական արտահանումների համար:
  • nil-coalescing օպերատոր (??)՝ կանխադրված արժեք տրամադրելու համար:
  • Օպցիոնալ շղթա (?.)՝ պայմանական մեթոդների կանչերի կամ հատկությունների մուտքի համար։