Go में map से keys का slice प्राप्त करना: सरल और प्रभावी समाधान
सभी को नमस्कार! मैं एक शुरुआती Go डेवलपर हूँ और एक साधारण सी समस्या का सामना कर रहा हूँ, लेकिन कोई सुरुचिपूर्ण समाधान नहीं ढूंढ पा रहा हूँ।
मेरे पास एक map है, मान लीजिए `map[string]int`, जहाँ keys उपयोगकर्ताओं के नाम हैं और values उनकी आयु हैं। मुझे सभी keys (नामों) की सूची `[]string` slice के रूप में प्राप्त करनी है, ताकि उदाहरण के लिए, इसे किसी फ़ंक्शन में पास कर सकूँ जो उपयोगकर्ताओं की सूची प्रदर्शित करता है।
Python में मैं बस `list(my_dict.keys())` लिखता। JavaScript में `Object.keys(myObj)`। लेकिन Go में मैं अभी केवल मैन्युअल iteration वाला विकल्प देख रहा हूँ:
```go
users := map[string]int{
"Alice": 25,
"Bob": 30,
"Charlie": 22,
}
var keys []string
for k := range users {
keys = append(keys, k)
}
```
यह काम करता है, लेकिन एक वाचाल साइकिल जैसा लगता है। मुझे लगता है कि इस सामान्य ऑपरेशन के लिए Go की standard library में एक built-in function होनी चाहिए। मैंने `reflect` और `maps` (Go 1.21+) में खोजा, लेकिन स्पष्ट उत्तर नहीं मिला।
प्रश्न:
1. क्या वास्तव में मैन्युअल iteration ही एकमात्र तरीका है?