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

गो में किसी अनाम संरचना तक पहुँचने पर मुझे \"बिना विधियों वाला इंटरफ़ेस\" क्यों मिलता है?

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

Why do I get \

Go में "बिना किसी विधि वाला इंटरफ़ेस" को समझना

आपके कोड में, आपको त्रुटि का सामना करना पड़ा "टाइप इंटरफ़ेस {} बिना किसी विधि वाला इंटरफ़ेस है विधियों" का उपयोग तब किया जाता है जब किसी फ़ंक्शन में पारित अज्ञात संरचना से किसी फ़ील्ड तक पहुंचने का प्रयास किया जाता है। इस त्रुटि को समझने के लिए, गो में इंटरफेस की अवधारणा को समझना आवश्यक है।

गो में एक इंटरफ़ेस एक प्रकार है जो तरीकों के एक सेट को परिभाषित करता है जिसे एक ठोस प्रकार को लागू करना होगा। हालाँकि, आपके मामले में, आप जिस इंटरफ़ेस का उपयोग कर रहे हैं वह इंटरफ़ेस {} द्वारा दर्शाया गया एक "खाली इंटरफ़ेस" है। एक खाली इंटरफ़ेस में कोई विधि नहीं होती है और यह किसी भी प्रकार के मान को धारण कर सकता है, जिससे यह एक सार्वभौमिक प्रकार बन जाता है।

अनाम संरचना फ़ील्ड तक पहुंचें

के फ़ील्ड तक पहुंचने के लिए अनाम संरचना न्यूजॉब को भेज दी गई है, इसके फ़ील्ड तक पहुंचने से पहले आपको इसे एक संगत प्रकार में टाइप करना होगा। प्रकार अभिकथन आपको खाली इंटरफ़ेस को एक विशिष्ट ठोस प्रकार में बदलने की अनुमति देता है।

सही कोड

id := v.(struct{Id int}).Id

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

याद रखें कि प्रकार के दावे का उपयोग विवेकपूर्ण तरीके से किया जाना चाहिए क्योंकि अगर प्रकार के दावे विफल हो जाते हैं तो इससे रनटाइम त्रुटियां हो सकती हैं।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3