मैं गो के अपने सीखने के साथ संघर्ष कर रहा हूं।क्या मैं गोलांग में एक प्रकार का उपनाम बना सकता हूं?
मैं बार में एक सेट के इस स्वच्छ कार्यान्वयन पाया: gopkg.in/fatih/set.v0, लेकिन मैं एक और अधिक स्पष्ट नाम है कि set.Set
के साथ अपने सेट नामकरण, की तरह कुछ कर रही पसंद करते हैं:
type View set.Set
संक्षेप में, मैं चाहता हूँ मेरी View
set.Set
के तरीकों के उत्तराधिकारी के प्रकार। क्योंकि, अच्छी तरह से, View
वर्णनकर्ताओं केset.Set
है। लेकिन मुझे पता है गो गो विरासत पर बहुत चोटी है, और सामान्य रूप से टाइपिंग।
अभी के लिए मैं निम्नलिखित थोड़े विरासत की कोशिश कर रहा है, लेकिन यह त्रुटियों का भार जब func Union(set1, set2 Interface, sets ...Interface) Interface
या func (s *Set) Merge(t Interface)
जैसे कुछ कार्यों का उपयोग करने की कोशिश कर पैदा:
type View struct {
set.Set
}
मैं हो, तो जानना चाहते हैं जो कुछ मैं चाहता हूं उसे प्राप्त करने का एक तरीका, या यदि मैं सिर्फ अपनी अच्छी-ओल 'ओओ प्रथाओं को उस भाषा में लागू करने की कोशिश कर रहा हूं जो उन्हें छोड़ देता है, तो कृपया।
लिखने की कोशिश मत करो विरासत के साथ ओओ भाषाओं की तरह जाओ। _no_ विरासत है, इसलिए आप केवल अधिक भ्रम पैदा करने जा रहे हैं। यदि आप स्वचालित रूप से विधियों और फ़ील्ड का प्रतिनिधि बनाना चाहते हैं, तो आप अपने दूसरे उदाहरण में एम्बेडिंग का उपयोग कर सकते हैं, जो कि ठीक है, लेकिन ध्यान रखें कि यह केवल रचना का एक रूप है। – JimB
तो, आपकी सलाह मूल सेट का उपयोग कर रही है। जैसा कि प्रकार है?चूंकि सेट के फ़ंक्शंस का उपयोग एम्बेडेड प्रकार से इतना बोझिल है? यह इतना बुरा नहीं है, मैं जो कर रहा था उसके बारे में सोचने से पहले मैं सीधे विरासत में गया था। –
यदि आप रुचि रखते हैं, तो विलियम केनेडी द्वारा इस विषय पर एक अच्छा लेख है: https://www.goinggo.net/2016/10/reducing-type-hierarchies.html – thoeni