कई defer ब्लॉक का क्रम
defer के उल्टे निष्पादन क्रम को समझिए।
कई defer ब्लॉक का क्रम, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
कई defer
एक दायरे में कई defer ब्लॉक हो सकते हैं। दायरा समाप्त होने पर वे सभी चलते हैं।
func demo() {
defer { print("A") }
defer { print("B") }
print("body")
}
demo()उलटा (LIFO) क्रम
स्थगित ब्लॉक घोषित किए जाने के उलटे क्रम में चलते हैं: सबसे अंत में घोषित ब्लॉक सबसे पहले चलता है।
func order() {
defer { print("1") }
defer { print("2") }
defer { print("3") }
print("start")
}
order()LIFO क्यों
LIFO क्रम सेटअप और समापन-सफ़ाई के एक-दूसरे में समाहित होने को दर्शाता है: सबसे हाल का सेटअप सबसे पहले पूर्ववत किया जाता है।
func resources() {
print("open A")
defer { print("close A") }
print("open B")
defer { print("close B") }
print("use both")
}
resources()स्टैक का मानसिक मॉडल
defer को एक स्टैक की तरह समझिए: हर defer एक कार्य को ऊपर रखता है और दायरा समाप्त होने पर वे उलटे क्रम में हटते हैं।
func stack() {
defer { print("pop first-declared last") }
defer { print("pop last-declared first") }
print("push done")
}
stack()defer और स्थानीय स्थिति
हर defer आसपास के चर को कैप्चर करता है और चलते समय उनके अंतिम मान देखता है।
func state() {
var x = 1
defer { print("x is", x) }
x = 42
}
state()लूप में defer
लूप के अंदर हर पुनरावृत्ति अपने defer दर्ज करती है और उस पुनरावृत्ति के अंत में उन्हें LIFO क्रम में चलाती है।
for i in 1...2 {
defer { print("late", i) }
defer { print("early", i) }
print("body", i)
}नेस्टेड दायरे
defer अपने दायरे के समाप्त होने पर चलता है, इसलिए अंदरूनी ब्लॉक का defer बाहरी ब्लॉक के defer से पहले चलता है।
func nested() {
defer { print("outer defer") }
do {
defer { print("inner defer") }
print("inner body")
}
print("outer body")
}
nested()पूर्वानुमेय सफ़ाई
LIFO क्रम का अर्थ है कि मेल खाते खोलने-बंद करने वाले युग्म स्वाभाविक रूप से सही क्रम में बंद होते हैं।
func files() {
print("open log")
defer { print("flush log") }
print("open db")
defer { print("disconnect db") }
print("transaction")
}
files()क्रम पढ़ना
आउटपुट का अनुमान लगाने के लिए defer को नीचे से ऊपर पढ़िए: दायरे में सबसे अंत वाला defer सबसे पहले प्रिंट करता है।
func quiz() {
defer { print("one") }
defer { print("two") }
print("body runs first")
}
quiz()return के साथ संयोजन
फ़ंक्शन जल्दी return करने पर भी सभी दर्ज किए गए defer LIFO क्रम में चलते हैं।
func early(_ skip: Bool) {
defer { print("cleanup 1") }
defer { print("cleanup 2") }
if skip { return }
print("full body")
}
early(true)सर्वोत्तम अभ्यास
हर समापन-सफ़ाई को उसके सेटअप के तुरंत बाद घोषित कीजिए और उन्हें सही ढंग से खोलने के लिए LIFO क्रम पर भरोसा कीजिए।
func pattern() {
print("acquire 1")
defer { print("release 1") }
print("acquire 2")
defer { print("release 2") }
print("work")
}
pattern()त्वरित जाँच
defer के क्रम की जाँच करें।
पुनरावलोकन
कई defer ब्लॉक दायरा समाप्त होने पर उलटे (LIFO) क्रम में चलते हैं: सबसे अंत में घोषित ब्लॉक सबसे पहले चलता है। इससे नेस्टेड सेटअप और समापन-सफ़ाई के युग्म जल्दी return होने पर भी स्वाभाविक रूप से सही क्रम में पूर्ववत हो जाते हैं।
func demo() {
defer { print("1") }
defer { print("2") }
print("body")
}
demo()एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “कई defer ब्लॉक का क्रम” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “कई defer ब्लॉक का क्रम” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“कई defer ब्लॉक का क्रम” में मैं क्या सीखूँगा?
defer के उल्टे निष्पादन क्रम को समझिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“कई defer ब्लॉक का क्रम” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- defer कैसे काम करता है
- कई defer ब्लॉक का क्रम
- संसाधन साफ़ करने के लिए defer
- त्रुटियों और जल्दी लौटने के साथ defer