"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्यों `defer` नामित रिटर्न मानों को अलग -अलग रूप से प्रभावित करता है, जो कि इनपुट मापदंडों की तुलना में अलग -अलग है?

क्यों `defer` नामित रिटर्न मानों को अलग -अलग रूप से प्रभावित करता है, जो कि इनपुट मापदंडों की तुलना में अलग -अलग है?

2025-03-04 पर पोस्ट किया गया
ब्राउज़ करें:634

] हालाँकि, जब यह एक फ़ंक्शन के भीतर अलग -अलग तरीकों से घोषित चर की बात आती है, तो परिणाम अलग -अलग हो सकते हैं, जिससे भ्रम हो सकता है। Defer func () {i} () मैं वापस आ गया } func मुख्य () { fmt.println (c (0)) // प्रिंट 0 }

Why Does `defer` Affect Named Return Values Differently Than Input Parameters in Go?
इस उदाहरण में, हम C फ़ंक्शन को कॉल करते हैं और इसे मान 0 पास करते हैं। हालांकि, जब हम परिणाम प्रिंट करते हैं, तो हमें अपेक्षित 1 के बजाय 0 मिलता है। यह इसलिए है क्योंकि मुझे फ़ंक्शन के लिए इनपुट पैरामीटर के रूप में घोषित किया जाता है। एक बार जब रिटर्न स्टेटमेंट निष्पादित हो जाता है, तो टापक फ़ंक्शन कहा जाता है, लेकिन रिटर्न मान पर वृद्धि का कोई प्रभाव नहीं होता है। Defer func () {i} () मैं वापस आ गया } func मुख्य () { fmt.println (c1 ()) // प्रिंट 1 }

यहाँ, मुझे C1 फ़ंक्शन के लिए परिणाम पैरामीटर घोषित किया गया है। जब रिटर्न स्टेटमेंट निष्पादित किया जाता है, तो I का मान रिटर्न वैल्यू पर सेट होता है। हालाँकि, DEFER फ़ंक्शन को अभी भी I के मान को संशोधित करने की अनुमति है, इससे पहले कि यह वापस आ जाए। इसके परिणामस्वरूप आउटपुट 1 हो जाता है। Defer func () {i} () 2 रिटर्न } func मुख्य () { fmt.println (c2 ()) // प्रिंट 3 … नतीजतन, DEFER फ़ंक्शन I के मान को बढ़ाता है, और रिटर्न मान 3 हो जाता है। इनपुट मापदंडों को एक फ़ंक्शन में पारित किया जाता है, जबकि नामित परिणाम पैरामीटर चर हैं जो फ़ंक्शन के रिटर्न मानों को धारण करते हैं। रिटर्न स्टेटमेंट निष्पादित होने के बाद DEFER फ़ंक्शन नामित परिणाम मापदंडों को संशोधित कर सकते हैं, लेकिन वे इनपुट मापदंडों को प्रभावित नहीं कर सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3