क्या कोई गो संग्रह है जो 'सेट इन पायथन' जैसा है?क्या सेट में मौजूद हैं? (पायथन में की तरह)
विकल्प:
- वहाँ जाओ में सेट को लागू करने के लिए एक आसान तरीका है?
- क्या स्लाइस में डुप्लिकेट को खत्म करने के लिए कोई तरीका है?
क्या कोई गो संग्रह है जो 'सेट इन पायथन' जैसा है?क्या सेट में मौजूद हैं? (पायथन में की तरह)
विकल्प:
आपके पास सिर्फ map[whatevertype]bool
हो सकता है और यह मान true
पर सेट कर सकता है। आप नक्शा कुंजी के रूप में स्लाइस में प्रत्येक तत्व जोड़ सकते हैं, फिर केवल अद्वितीय लोगों को वापस पाने के लिए range
का उपयोग करें।
package main
import "fmt"
func main() {
m := make(map[string]bool)
s := make([]string, 0)
s = append(s, "foo")
s = append(s, "foo")
s = append(s, "foo")
s = append(s, "bar")
s = append(s, "bar")
for _, r := range s {
m[r] = true
}
s = make([]string, 0)
for k, _ := range m {
s = append(s, k)
}
fmt.Printf("%v\n", s)
}
इस बिंदु पर गोलांग में कोई सेट कार्यान्वयन नहीं है। आपको इसे स्वयं करने या तीसरे पक्ष की lib प्राप्त करने की आवश्यकता होगी।
http://openmymind.net/2011/7/15/Learning-Go-By-Benchmarking-Set-Implementation
मैं सिर्फ जोड़ने के लिए कि आप वास्तव में, मूल्य के रूप में किसी भी मनमाने ढंग से प्रकार का उपयोग कर सकते हैं के बाद से आप इसके बारे में परवाह नहीं करना चाहती: इसके अलावा यहां एक अच्छा ब्लॉग पोस्ट है। लेकिन 'बूल' का उपयोग करके हमेशा सत्य पर सेट किया जाता है, यह जांचने में सक्षम होने का अतिरिक्त लाभ होता है कि कोई तत्व इंडेक्सिंग द्वारा मौजूद है या नहीं, क्योंकि जब आप एक कुंजी इंडेक्स करते हैं और यह अस्तित्व में नहीं होता है, तो यह मान प्रकार के लिए शून्य मान वापस कर देगा, जो बुलियन के लिए झूठा है। – newacct