Interface Embedding
Interface की रचना करें
Interface Embedding, CoddyKit पर Go Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Go Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
इंटरफ़ेस का संयोजन
इंटरफ़ेस दूसरे इंटरफ़ेस को एम्बेड कर सकते हैं और उनकी विधि-सूचियों को मिलाकर बड़ा अनुबंध बना सकते हैं। मानक लाइब्रेरी में इसका हर जगह उपयोग होता है।
एम्बेडिंग का सिंटैक्स
किसी इंटरफ़ेस प्रकार को दूसरे इंटरफ़ेस के भीतर लिखें, ताकि उसकी सभी विधियाँ शामिल हो जाएँ।
package main
import "fmt"
type Reader interface{ Read() string }
type Writer interface{ Write(s string) }
type ReadWriter interface {
Reader
Writer
}
func main() {
var rw ReadWriter
fmt.Println(rw == nil)
}io.ReadWriter का वास्तविक उपयोग
क्लासिक उदाहरण io.ReadWriter है, जिसे io.Reader और io.Writer की एम्बेडिंग के रूप में परिभाषित किया गया है। दोनों विधियाँ रखने वाला कोई भी प्रकार इसे संतुष्ट करता है।
संयुक्त इंटरफ़ेस को संतुष्ट करना
किसी ठोस प्रकार को संयुक्त इंटरफ़ेस लागू करने के लिए बस सभी आवश्यक विधियाँ रखनी होती हैं।
package main
import "fmt"
type Reader interface{ Read() string }
type Writer interface{ Write(s string) }
type ReadWriter interface {
Reader
Writer
}
type File struct{ data string }
func (f *File) Read() string { return f.data }
func (f *File) Write(s string) { f.data = s }
func main() {
var rw ReadWriter = &File{}
rw.Write("hi")
fmt.Println(rw.Read())
}इंटरफ़ेस का संयोजन क्यों करें
छोटे इंटरफ़ेस लागू करना आसान होता है और उनका परीक्षण भी सरल होता है। आवश्यकता होने पर उन्हें जोड़कर बड़े अनुबंध बनाए जा सकते हैं, जबकि हर भाग छोटा रहता है।
छोटे भागों से निर्माण
केंद्रित, एक-विधि वाले इंटरफ़ेस परिभाषित करें और फिर उन्हें मिलाएँ।
package main
import "fmt"
type Opener interface{ Open() }
type Closer interface{ Close() }
type OpenCloser interface {
Opener
Closer
}
type Door struct{}
func (Door) Open() { fmt.Println("opened") }
func (Door) Close() { fmt.Println("closed") }
func main() {
var oc OpenCloser = Door{}
oc.Open()
oc.Close()
}दोहराई गई विधियाँ नहीं
एम्बेडेड इंटरफ़ेस में परस्पर विरोधी हस्ताक्षर वाली एक-दूसरे पर चढ़ती विधियाँ नहीं होनी चाहिए; आधुनिक Go में समान विधि-सूचियाँ ठीक हैं।
संकीर्ण इंटरफ़ेस स्वीकार करना
फ़ंक्शन को अपने लिए आवश्यक सबसे छोटा इंटरफ़ेस माँगना चाहिए। यदि आपको केवल पढ़ना है, तो io.ReadWriteCloser के बजाय io.Reader लें।
package main
import "fmt"
type Reader interface{ Read() string }
func dump(r Reader) { fmt.Println(r.Read()) }
type Buf struct{}
func (Buf) Read() string { return "data" }
func main() {
dump(Buf{})
}io परिवार
मानक लाइब्रेरी Reader, Writer और Closer को मिलाकर ReadCloser, WriteCloser, ReadWriteCloser बनाती है—अनुबंधों का एक सुव्यवस्थित ढाँचा।
एपीआई में संयुक्त इंटरफ़ेस
किसी मान द्वारा समर्थित सबसे व्यापक इंटरफ़ेस लौटाएँ, लेकिन आपका फ़ंक्शन जिस सबसे संकीर्ण इंटरफ़ेस का उपयोग करता है, उसे ही स्वीकार करें। इससे लचीलापन और स्पष्टता दोनों अधिकतम होते हैं।
इंटरफ़ेस बनाम स्ट्रक्चर एम्बेडिंग
- स्ट्रक्चर एम्बेडिंग व्यवहार के पुनः उपयोग के लिए फ़ील्ड और विधियों को प्रमोट करती है
- इंटरफ़ेस एम्बेडिंग बड़े अनुबंध में विधि आवश्यकताओं को मिलाती है
त्वरित जाँच
इंटरफ़ेस एम्बेडिंग के अपने ज्ञान का परीक्षण करें।
पुनरावलोकन
आपने इंटरफ़ेस एम्बेडिंग सीखी।
- विधि-सूचियों को मिलाने के लिए इंटरफ़ेस को दूसरे इंटरफ़ेस के भीतर लिखें
- io पैकेज Reader/Writer/Closer को मिलाता है
- आधार इंटरफ़ेस छोटे रखें और आवश्यकता होने पर उन्हें मिलाएँ
- फ़ंक्शन के लिए आवश्यक सबसे संकीर्ण इंटरफ़ेस स्वीकार करें
एआई शिक्षक के साथ Go सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 51
- पाठ
- 203
अक्सर पूछे जाने वाले प्रश्न
क्या “Interface Embedding” पाठ निःशुल्क है?
हाँ — Go Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Interface Embedding” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Interface Embedding” में मैं क्या सीखूँगा?
Interface की रचना करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Go Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Go Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Go Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“Interface Embedding” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Go Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Go Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Struct Embedding
- Interface Embedding
- Method Promotion
- विरासत से बेहतर Composition