Go में बिल्ट-इन 'set' डेटा स्ट्रक्चर क्यों नहीं है और इसे कैसे implement करें?
सभी को नमस्ते! मैं Go में नया हूँ, Python से आया हूँ, और मुझे बिल्ट-इन 'set' डेटा टाइप की कमी से बहुत परेशानी होती है। Python में मैं elements की uniqueness की तेज़ जाँच, slices से duplicates हटाने और intersections जाँचने के लिए लगातार set का उपयोग करता था। उदाहरण के लिए:
```go
// मैं Go में ऐसा कैसे करूँ?
uniqueNames := []string{}
seen := set() // ऐसा कुछ नहीं है!
for _, name := range names {
if !seen.Contains(name) {
seen.Add(name)
uniqueNames = append(uniqueNames, name)
}
}
```
मैं समझता हूँ कि map[string]bool या map[string]struct{} का उपयोग किया जा सकता है, लेकिन यह एक workaround लगता है। Go के developers ने standard library में एक सामान्य set क्यों नहीं जोड़ा? यह एक बुनियादी data structure है जो लगभग सभी आधुनिक भाषाओं में मौजूद है।
हो सकता है कि मैं कुछ भूल रहा हूँ? क्या Go में sets के साथ काम करने का कोई idiomatic तरीका है जो पहिया का पुनः आविष्कार न करे? या क्या हर बार अपनी खुद की implementation लिखनी पड़ती है? कोड उदाहरणों और philosophy की व्याख्या के लिए आभारी रहूँगा।