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

हम विभिन्न डेटा प्रकारों के लिए गोलांग में सामान्य फ़ंक्शन कैसे बना सकते हैं?

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

 How Can We Create Generic Functions in Golang for Different Data Types?

गोलंग में जेनेरिक विधि पैरामीटर्स

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

निम्नलिखित उदाहरण पर विचार करें, जहां हमारा लक्ष्य एक सामान्य काउंट फ़ंक्शन बनाना है जो तत्वों की संख्या की गणना करता है एक स्लाइस में:

func गिनती[T कोई भी](s []T) int { वापसी लेन }
func Count[T any](s []T) int {
  return len(s)
}

इसके अलावा, हम जेनेरिक तरीकों को लागू करने के लिए इंटरफेस का उपयोग कर सकते हैं विशिष्ट कार्यों के लिए. उदाहरण के लिए, हम GetID विधि के साथ एक पहचान योग्य इंटरफ़ेस को परिभाषित कर सकते हैं और एक सामान्य FindByID फ़ंक्शन बना सकते हैं जो स्लाइस तत्वों के वास्तविक प्रकार की परवाह किए बिना, उसके आईडी मान के आधार पर एक स्लाइस के भीतर एक तत्व की खोज करता है:

पहचान योग्य इंटरफ़ेस टाइप करें { GetID() int } func FindByID[T Identifiable](s []T, id int) *T { i के लिए, v := रेंज s { यदि v.GetID() == आईडी { वापसी &s[i] } } शून्य वापसी }
type Identifiable interface {
  GetID() int
}

func FindByID[T Identifiable](s []T, id int) *T {
  for i, v := range s {
    if v.GetID() == id {
      return &s[i]
    }
  }
  return nil
}
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3