मैं कोड ब्लॉक या 'स्कोप' की परिभाषा के बारे में उलझन में हूं। गार्ड के लिए ऐप्पल दस्तावेज़ यह कहते हैं: एक गार्ड स्टेटमेंट का अन्य ब्लॉक ...अगर स्विफ्ट 'गार्ड' कथन को दायरे से बाहर निकलना चाहिए, तो दायरे की परिभाषा क्या है?
"कोड ब्लॉक से बाहर निकलने के लिए नियंत्रण स्थानांतरित करना होगा जिसमें गार्ड स्टेटमेंट दिखाई देता है।"
अन्य online sources कहता है कि गार्ड स्टेटमेंट में 'स्कोप' मौजूद होना चाहिए जिसमें यह मौजूद है। 'विषय-क्षेत्र' के अपने वर्तमान समझ, कोड
if y == 2 {....}
एक नया गुंजाइश बनाता है, अर्थात् के बीच {} के अनुसार
func testGuardControlFlow() {
let x = 2
let y = 2
func embededFunc() {
if y == 2 {
guard x == 1 else {
print("oops, number is not 1")
return
}
print ("from in embededFunc")
}
print ("I still want this to print even if x != 1")
}
embededFunc()
print("Great, return still allows this to be printed.")
}
testGuardControlFlow()
:
तो नीचे दिए गए उदाहरण कोड ले। और इस धारणा को देखते हुए, गार्ड केवल उस दायरे से बच जाएगा। लेकिन मामला वह नहीं है। इस उदाहरण में गार्ड उस समारोह से बच निकलता है, भले ही इसे किसी खंड में दफनाया गया हो।
क्या मैं पूरी तरह से गलत समझ रहा हूं कि 'स्कोप' का क्या अर्थ है? क्या किसी विधि में कोड का मतलब है? यदि हां, तो 'स्पेस' के लिए सही शब्द क्या है जो किसी कथन के भीतर मौजूद है?
आवश्यकता यह है कि अन्य खंड वर्तमान दायरे को छोड़ देता है। 'वापसी' पूरे कार्य को छोड़कर आवश्यकता को पूरा करती है जो निश्चित रूप से वर्तमान दायरे को छोड़ देती है। अन्य खंड में 'वापसी' का उपयोग करना आवश्यक नहीं है। अन्य चीजें काम जारी रखेगी, जैसे 'जारी रखें'। – vacawama