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

आप गो में पॉइंटर द्वारा संदर्भित मूल्य को कैसे संशोधित करते हैं?

2024-11-08 को प्रकाशित
ब्राउज़ करें:920

How Do You Modify the Value Dereferenced by a Pointer in Go?

गो में एक पॉइंटर द्वारा डीरेफ़रेंस किए गए मान को संशोधित करना

फ़ंक्शंस में पॉइंटर्स पास करने से उनके द्वारा संदर्भित मानों को संशोधित करने की अनुमति मिलती है। हालाँकि, इस ऑपरेशन को सही ढंग से करने के लिए पॉइंटर्स की आंतरिक कार्यप्रणाली को समझने की आवश्यकता होती है। गो में, इस उद्देश्य के लिए तारांकन ऑपरेटर (*) का उपयोग किया जाता है। किसी पॉइंटर को डीरेफ़रेंस करके, आप उस अंतर्निहित मान तक पहुंच सकते हैं जिस पर वह इंगित करता है। का संकेत। पॉइंटर वेरिएबल को नया मान निर्दिष्ट करने से केवल उसके द्वारा संग्रहीत पता बदल जाता है। उदाहरण के लिए, नीचे दिया गया कोड स्निपेट इंगित किए गए मान को संशोधित नहीं करता है:

func f(p *Test) { पी = &परीक्षण{4} }

संकेतित मानों को संशोधित करना

उधारित मान को संशोधित करने के लिए, डीरेफ़रेंसिंग ऑपरेटर का उपयोग करना आवश्यक है। यह स्पष्ट रूप से या परोक्ष रूप से किया जा सकता है।

func f(p *Test) {
   p = &Test{4}
}

func f(p *Test) { *पी = परीक्षण{4} }

अंतर्निहित डीरेफ़रेंसिंग:

func f(p *Test) {
   *p = Test{4}
}
दोनों मामलों में, पी द्वारा इंगित मूल्य बदल जाता है।

पॉइंटर टू पॉइंटर संशोधन

पॉइंटर को पॉइंटर (*टेस्ट) में पास करने से संशोधित करने की अनुमति मिलती है सूचक मान मुख्य फ़ंक्शन में संग्रहीत है। हालाँकि, यह मूल सूचक द्वारा बताए गए मान को नहीं बदलेगा।
func f(p *Test) {
   p.Value = 4
}
func f(p **Test) { *पी = &टेस्ट{4} }

संक्षेप में, फ़ंक्शंस में पॉइंटर्स पास करते समय, पॉइंटर के मान को संशोधित करने और उसके द्वारा इंगित मान को संशोधित करने के बीच अंतर को समझना महत्वपूर्ण है। अंतर्निहित डेटा मानों में संशोधन को सक्षम करने के लिए, बाद के ऑपरेशन को निष्पादित करने के लिए डीरेफ़रेंसिंग पॉइंटर्स आवश्यक है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3