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

गोलंग के पास नेटिव सेट डेटा संरचना क्यों नहीं है?

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

Why Doesn't Golang Have a Native Set Data Structure?

गोलंग में सेट डेटा संरचना की उत्सुक कमी

गोलंग में, सेट डेटा संरचना की मूलभूत आवश्यकता ने पेचीदा सवाल पैदा कर दिया है: क्यों क्या कोई मूल रूप से उपलब्ध नहीं कराया गया है? Google की प्रभावशाली अमरूद लाइब्रेरी से प्रेरणा लेते हुए, गोलांग के डिजाइनरों ने ऐसी मौलिक संरचना के लिए समर्थन क्यों छोड़ दिया, जिससे डेवलपर्स को अपने स्वयं के कार्यान्वयन को तैयार करने के लिए मजबूर होना पड़ा?

इसका उत्तर मानचित्रों का उपयोग करके सेट बनाने की सादगी में निहित है। जैसा कि दिए गए कोड स्निपेट में दिखाया गया है, सेट बनाने के लिए मानचित्रों का लाभ उठाया जा सकता है। अस्तित्व की जाँच करना, जोड़ना, हटाना और सेट ऑपरेशन (यूनियन, इंटरसेक्शन) करना जैसे प्रमुख ऑपरेशन आसानी से लागू किए जा सकते हैं।

s := map[int]bool{5: true, 2: true}
_, ok := s[6] // check for existence
s[8] = true // add element 
delete(s, 2) // remove element

// Union
s_union := map[int]bool{}
for k, _ := range s1{
    s_union[k] = true
}
for k, _ := range s2{
    s_union[k] = true
}

// Intersection
s_intersection := map[int]bool{}
if len(s1) > len(s2) {
  s1, s2 = s2, s1 // better to iterate over a shorter set
}
for k,_ := range s1 { 
  if s2[k] {
    s_intersection[k] = true
  }
}

हालांकि ये मानचित्र-आधारित कार्यान्वयन अधिकांश व्यावहारिक परिदृश्यों के लिए पर्याप्त हैं, कुछ लोग तर्क दे सकते हैं कि एक मूल सेट कार्यान्वयन कोड पठनीयता को सरल और बढ़ाएगा। बहरहाल, गोलांग डेवलपर्स के लिए, सेट के रूप में मानचित्रों के उपयोग को समझना समस्या-समाधान और कुशल संसाधन उपयोग दोनों के लिए महत्वपूर्ण है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3