Avatar ·

यदि हमें पहले से ही यकीन है कि वहाँ मान है, तो इम्प्लिसिटली अनरैप्ड ऑप्शनल्स (Implicitly Unwrapped Optionals) की आवश्यकता क्यों है?

सभी को नमस्ते! मैंने अभी-अभी Swift सीखना शुरू किया है, और मुझे एक सवाल परेशान कर रहा है। मैं डॉक्यूमेंटेशन पढ़ रहा था और Implicitly Unwrapped Optionals (IUO) नामक चीज़ पर ठोकर खाई — ये अंतर्निहित रूप से निकाले जाने वाले ऑप्शनल्स हैं। इन्हें विस्मयादिबोधक चिह्न के साथ घोषित किया जाता है, उदाहरण के लिए: ```swift var name: String! = "Alice" ``` मैं समझता हूँ कि यह एक ऑप्शनल है जो इसके उपयोग पर स्वचालित रूप से अनरैप हो जाता है, बिना `if let` या `guard let` लिखने की आवश्यकता के। लेकिन मुझे यह समझ नहीं आता: ऐसे प्रकार की आवश्यकता क्यों है? आखिरकार, अगर हमें यकीन है कि मान मौजूद है (विस्मयादिबोधक चिह्न यही संकेत देता है), तो सीधे सामान्य non-optional प्रकार, जैसे `String`, का उपयोग क्यों न करें? इसमें क्या अंतर है? मैंने सुना है कि IUO का उपयोग अक्सर UIKit के गुणों में किया जाता है, विशेष रूप से स्टोरीबोर्ड में, उदाहरण के लिए: ```swift @IBOutlet weak var button: UIButton! ``` सिर्फ `UIButton` क्यों नहीं लिख सकते? आखिरकार, अगर हमने बटन को कनेक्ट किया है, तो वह निश्चित रूप से होगा। या यह view के जीवनचक्र से संबंधित कोई जादू है? कृपया समझाएँ।