मैं एक त्वरित परीक्षण की स्थापना की, सब कुछ का नाम बदलने। फिर मैंने प्रत्येक नाम को "स्नूपी" में बदलने की कोशिश करने के लिए कोड जोड़ा।
# 2 और # 3 नहीं बनाया गया, क्योंकि संकलक जानता था कि वे दोनों ही पढ़े जाते हैं। । पर आरंभ, एक अद्यतन करने के लिए कोशिश कर के बाद के बाद
- (# 2, के बावजूद एक var
के रूप में घोषित किया जा रहा है, हमेशा वापस जाने के लिए "चार्ली" सेट कर दिया जाता
उन दो पंक्तियों बाहर टिप्पणी के बाद, मैं दो breakpoints निर्धारित किया है। अंत में मैं हर एक का एक print
कर की कोशिश की
ब्रेकप्वाइंट # 1:। # 1 और # 4 के लिए "चार्ली" सेट कर रहे हैं, # 2 वहाँ (क्योंकि यह प्रारंभ नहीं किया गया है) नहीं है और # 3 प्रकट होता है प्रारंभ के रूप में है, लेकिन कोई मान के साथ (क्योंकि यह अभी तक नहीं बुलाया गया था। और हाँ, अंत में ()
स्मृति में कुछ initializes।
+०१२३५१६४१०
ब्रेकपॉइंट # 2: # 1 और # 4 को "स्नूपी" में अपडेट किया गया था। print
की
परिणाम: # 1 और # 4 "Snoopy" थे, # 2 था "चार्ली" और # 3 था "(फंक्शन)"।
निष्कर्ष: # 1 और # 4 के बीच कोई अंतर नहीं है। प्रत्येक को var
घोषित किया गया है और "चार्ली" का डिफ़ॉल्ट है। # 2, केवल पढ़ने के लिए है let
की वजह से है और हमेशा वापस आ जाएगी "चार्ली"। # 3? यह एक उदाहरण बनाता है और निर्माण नहीं करता है अगर आप इसे बदलने की कोशिश - लेकिन मैं यह कैसे उपयोग करने के लिए पता नहीं है।
मैं अगर किसी को भी # 3 के बारे में जोड़ने के लिए अधिक है इस उत्तर अद्यतन करेगा।
वैसे आप कि वास्तव में विधि के बारे में सही 4. बंद वस्तु है, जहां संपत्ति घोषित किया जाता है और जब इस तक पहुंच नहीं की आरंभीकरण पर निष्पादित किया जाएगा नहीं हैं। इस प्रकार, यह उस बंद होने के परिणाम से असाइन किए गए डिफ़ॉल्ट संपत्ति मान की तरह है। लेकिन आप सही हैं, आप बाद में इसे किसी और चीज़ से बदल सकते हैं। –
@OlegDanu आप पूरी तरह से सही हैं, मैंने तदनुसार जवाब अपडेट किया। धन्यवाद! – Thomas
गणना गुण हमेशा पढ़ने-योग्य नहीं होते हैं, बीटीडब्ल्यू। आप उन्हें लिखने के लिए गणना की गई संपत्तियों पर 'get' और' set' परिभाषित कर सकते हैं। जब ऊपर दिखाए गए अनुसार घोषित किया गया, हालांकि, वे निश्चित रूप से केवल एक गेटर है, जो प्रभावी रूप से उन्हें केवल पढ़ने के लिए बनाता है। Https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html#//apple_ref/doc/uid/TP40014097-CH14-ID259 –