दिलचस्प पोस्ट
कीवर्ड के सेट को बाहर करने के लिए नियमित अभिव्यक्ति नक्शे पर इंटरपोलेटेड डेटा को प्लॉट करना सी ++ 11 "ऑटो" शब्दार्थ चेतावनी कैसे बढ़ाएं अगर रिटर्न वैल्यू अवहेलना है? सूची स्लाइस पर परिवर्तन क्रोम एक्सटेंशन में URL पुनर्निर्देशित करना एंड्रॉइड – मुझे टुकड़ों बनाम गतिविधियों और दृश्यों के कुछ स्पष्टीकरण की आवश्यकता है I कोई संपादक विकल्पडिफ़िनिशन निर्यात मिला त्रुटि डिस्क एसडीके पर फ़ोल्डर की फ़ाइलों की सूची प्राप्त करना टर्नरी ऑपरेटर के परिणामस्वरूप अप्रत्याशित प्रकार मैं कैसे दायित्वों को पुनः लोड करने के लिए मजबूर कर सकता हूं? मैं एक टंकिनर विंडो में माउस की स्थिति कैसे निर्धारित कर सकता हूं 'पुस्तकालय लोड नहीं किया गया है: @ rpath / libcudart.7.5.dylib' मैक पर TensorFlow त्रुटि सामग्री का उपयोग करते समय एड्यटेटिव का उपयोग करते समय कैरेट जावास्क्रिप्ट के साथ कैसा तत्व प्राप्त कर सकता है? SLF4J: वर्ग "org.slf4j.impl.StaticLoggerBinder" लोड करने में विफल

स्विफ्ट चर सजावट "?" (प्रश्न चिह्न) और "!" (उद्गार चिन्ह) के साथ

मैं समझता हूं कि स्विफ्ट में सभी वैरिएबल को एक मूल्य के साथ सेट किया जाना चाहिए, और यह कि विकल्प के उपयोग से हम शुरू में nil को निर्धारित करने के लिए एक चर निर्धारित कर सकते हैं।

मुझे समझ में नहीं आ रहा है, जो एक के साथ एक चर सेट ! क्या कर रहा है, क्योंकि मैं इस धारणा के तहत था कि यह एक वैकल्पिक से मूल्य को "खोलता है" मैंने ऐसा करने से सोचा, आप गारंटी दे रहे हैं कि उस वैरिएबल में खोलना एक मूल्य है, यही वजह है कि आईबीटीकरण पर और आप इसे देख रहे हैं।

तो बस इसे डालें, जब आप ऐसा कुछ करते हैं तो चर को आरंभ किया जा रहा है:

 var aShape : CAShapeLayer! 

और क्यों / जब मैं यह करूँगा?

Solutions Collecting From Web of "स्विफ्ट चर सजावट "?" (प्रश्न चिह्न) और "!" (उद्गार चिन्ह) के साथ"

एक प्रकार की घोषणा में ! के समान है ? । दोनों एक वैकल्पिक हैं, लेकिन ! एक " निरुपित रूप से अनवरेक्षित" वैकल्पिक है , जिसका अर्थ है कि आपको मूल्य तक पहुंचने के लिए इसे खोलना नहीं है (लेकिन यह अभी भी शून्य हो सकता है)।

यह मूल रूप से हमारे द्वारा पहले से ही उद्देश्य-सी में हुआ व्यवहार है। एक मान शून्य हो सकता है, और आपको इसके लिए जांचना पड़ता है, लेकिन आप सीधे वैल्यू एक्सेस भी कर सकते हैं जैसे कि यह वैकल्पिक नहीं है (महत्वपूर्ण अंतर के साथ यदि आप शून्य के लिए जांच नहीं करते हैं तो आपको मिलेगा रनटाइम त्रुटि)

 // Cannot be nil var x: Int = 1 // The type here is not "Int", it's "Optional Int" var y: Int? = 2 // The type here is "Implicitly Unwrapped Optional Int" var z: Int! = 3 

उपयोग:

 // you can add x and z x + z == 4 // ...but not x and y, because y needs to be unwrapped x + y // error // to add x and y you need to do: x + y! // but you *should* do this: if let y_val = y { x + y_val }