গো ভাষার মানচিত্রে সমস্ত কীগুলির একটি তালিকা পাওয়ার কোনও উপায় আছে? উপাদানগুলির সংখ্যা দ্বারা প্রদত্ত len()
, তবে আমার মতো মানচিত্র থাকলে:
m := map[string]string{ "key1":"val1", "key2":"val2" };
কীভাবে আমি সমস্ত কীগুলি দিয়ে পুনরুক্তি করব?
গো ভাষার মানচিত্রে সমস্ত কীগুলির একটি তালিকা পাওয়ার কোনও উপায় আছে? উপাদানগুলির সংখ্যা দ্বারা প্রদত্ত len()
, তবে আমার মতো মানচিত্র থাকলে:
m := map[string]string{ "key1":"val1", "key2":"val2" };
কীভাবে আমি সমস্ত কীগুলি দিয়ে পুনরুক্তি করব?
উত্তর:
https://play.golang.org/p/JGZ7mN0-U-
for k, v := range m {
fmt.Printf("key[%s] value[%s]\n", k, v)
}
অথবা
for k := range m {
fmt.Printf("key[%s] value[%s]\n", k, m[k])
}
for
বিবৃতিগুলির জন্য ল্যাঙ্গুয়েজ স্পেসগুলি নির্দিষ্ট করে যে প্রথম মানটি মূল, দ্বিতীয় ভেরিয়েবলটি মান, তবে উপস্থিত থাকতে হবে না।
slice
মানচিত্র-কীগুলি পাওয়ার জন্য এখানে কিছু সহজ উপায় ।
// Return keys of the given map
func Keys(m map[string]interface{}) (keys []string) {
for k := range m {
keys = append(keys, k)
}
return keys
}
// use `Keys` func
func main() {
m := map[string]interface{}{
"foo": 1,
"bar": true,
"baz": "baz",
}
fmt.Println(Keys(m)) // [foo bar baz]
}
Keys
ফাংশনটির পক্ষে কেবল স্ট্রিং নয়, কোনও ধরণের কীগুলির সাথে একটি মানচিত্র নেওয়া সম্ভব ?
func Keys(m map[interface{}]interface{}) (keys []interface{})
, @ রবার্টটি.এমসি গিবন আপনাকে "প্রোটোটাইপ" ফাংশনটি পরিবর্তন করতে হবে
map[interface{}]interface{}
। গো জেনেরিক সমর্থন করে না। আপনি কোনও map
প্যারামিটার দিয়ে কোনও ফাংশন তৈরি করতে পারবেন না যা বিভিন্ন কী ধরণের মানচিত্র গ্রহণ করে।
গো ভাষার মানচিত্রে সমস্ত কীগুলির একটি তালিকা পাওয়ার কোনও উপায় আছে?
ks := reflect.ValueOf(m).MapKeys()
আমি কীগুলি সমস্ত কী দিয়ে পুনরাবৃত্তি করব?
গৃহীত উত্তরটি ব্যবহার করুন:
for k, _ := range m { ... }
for _, k := range v.MapKeys()
, যেহেতু আপনার উদাহরণ হিসাবে, k
কীগুলির