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

## गो में इंटरफेस के एक स्लाइस को एक संगत इंटरफ़ेस स्लाइस में कैसे परिवर्तित करें?

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

## How to Convert a Slice of Interfaces to a Compatible Interface Slice in Go?

इंटरफ़ेस के स्लाइस को संगत इंटरफ़ेस स्लाइस में परिवर्तित करना

ओवरलैपिंग तरीकों वाले विभिन्न इंटरफेस को लागू करना प्रोग्रामिंग में लचीलापन प्रदान कर सकता है। हालाँकि, एक इंटरफ़ेस के एक टुकड़े को एक अलग लेकिन संगत इंटरफ़ेस की अपेक्षा वाले फ़ंक्शन में पास करने से त्रुटियां हो सकती हैं। आइए देखें कि गो में इस मुद्दे को कैसे संबोधित किया जाए। ] टाइप ए इंटरफ़ेस { बंद करें() त्रुटि पढ़ें(बी []बाइट) (int, त्रुटि) } इम्प्लांट स्ट्रक्चर टाइप करें {} func (I Impl) पढ़ें(बी []बाइट) (int, त्रुटि) { fmt.Println("पढ़ने में!") वापसी 10, शून्य } func (I Impl) बंद करें() त्रुटि { fmt.Println("मैं यहाँ हूँ!") शून्य वापसी }

व्यक्तिगत वस्तुओं को आसानी से कार्यों में पारित किया जा सकता है। हालाँकि, io.Reader की अपेक्षा वाले कार्यों में A के स्लाइस पास करने का प्रयास विफल हो सकता है।

type A interface {
    Close() error
    Read(b []byte) (int, error)
}

type Impl struct {}

func (I Impl) Read(b []byte) (int, error) {
    fmt.Println("In read!")
    return 10, nil
}

func (I Impl) Close() error {
    fmt.Println("I am here!")
    return nil
}

इसे हल करने के लिए, हम []io.Reader प्रकार का एक नया स्लाइस बना सकते हैं और इसे []ए के तत्वों से भर सकते हैं। यह सीमा को दरकिनार करने और विभिन्न लेकिन ओवरलैपिंग इंटरफ़ेस प्रकारों के बीच संगतता सुनिश्चित करने का समाधान है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3