Avatar ·

Go में map से keys का slice प्राप्त करने का तरीका: पूर्ण गाइड

सभी को नमस्ते! मैंने हाल ही में Go सीखना शुरू किया है और मुझे एक समस्या का सामना करना पड़ा जो सरल लगती है, लेकिन मुझे कोई सुंदर समाधान नहीं मिल रहा है।

मेरे पास उपयोगकर्ताओं के डेटा का एक map है:

users := map[int]string{
    1: "Alice",
    2: "Bob",
    3: "Charlie",
    4: "Diana",
}

मुझे सभी उपयोगकर्ता ID (keys) की सूची एक []int slice के रूप में चाहिए। Python में मैं बस list(users.keys()) लिखता, लेकिन Go में ऐसा कोई सरल फंक्शन नहीं है।

मैंने ऐसा करने की कोशिश की:

var keys []int
for key := range users {
    keys = append(keys, key)
}

यह काम करता है, लेकिन मुझे लगता है कि यह बहुत verbose है। क्या कोई built-in फंक्शन या अधिक idiomatic तरीका है? विशेष रूप से मुझे चिंता है:

  • Keys का क्रम — क्या यह हमेशा random होता है?
  • बड़े map (लाखों entries) के साथ कैसे करें?
  • क्या इसे एक लाइन में किया जा सकता है?

उदाहरणों के लिए आभारी रहूंगा।