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

क्या एम्बेडेड संरचनाओं को गो में विधि विरासत के लिए प्रतिस्थापित किया जा सकता है?

2025-02-06 पर पोस्ट किया गया
ब्राउज़ करें:973

] एम्बेडेड संरचनाओं का उपयोग किए बिना एक प्रकार के तरीकों को विरासत में देने का एक वैकल्पिक तरीका। हालाँकि, इसे GO के प्रकार प्रणाली की गहरी समझ की आवश्यकता है। मानो वे युक्त संरचना का हिस्सा थे। यह एक शक्तिशाली विशेषता है जिसका उपयोग प्रकारों के बीच विरासत बनाने के लिए किया जा सकता है। स्वचालित रूप से युक्त संरचना में प्रचारित किया जाता है। तरीकों को बढ़ावा देने के लिए, एम्बेडेड संरचना गुमनाम होना चाहिए। वे युक्त संरचना के तरीके थे। यह इन नियमों का पालन करके प्राप्त किया जाता है:

  Can Embedded Structs Be Replaced for Method Inheritance in Go?

यदि अनाम फ़ील्ड में टाइप t है, तो प्रचारित तरीकों में प्रकार t और *t के रिसीवर हैं। , प्रचारित तरीकों में t या *t के प्रकार के रिसीवर होते हैं। मानचित्र [स्ट्रिंग] इंटरफ़ेस {} func (p props) getString (कुंजी स्ट्रिंग) स्ट्रिंग { पी [कुंजी]। (स्ट्रिंग) } टाइप नोड संरचना { रंगमंच की सामग्री } func मुख्य () { नोड: = नोड {"परीक्षण": "फू"} fmt.println (node.getString ("परीक्षण")) // आउटपुट: फू }

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

टाइप प्रॉप्स मैप [स्ट्रिंग] इंटरफ़ेस {} func (p *props) getString (कुंजी स्ट्रिंग) स्ट्रिंग { पी [कुंजी]। (स्ट्रिंग) } टाइप नोड संरचना { रंगमंच की सामग्री } func मुख्य () { नोड: = और नोड {प्रॉप्स {"परीक्षण": "फू"}}} fmt.println (node.getString ("परीक्षण")) // आउटपुट: फू }

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

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

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

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

Copyright© 2022 湘ICP备2022001581号-3