遍历地图的所有键
有没有办法获得一个Go语言地图中所有键的列表? 元素的数量由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]) }
Go语言规范for语句指定第一个值是键,第二个variables是值,但不一定要存在。
这里有一些简单的方法来获得地图键的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] }
有没有办法获得一个Go语言地图中所有键的列表?
ks := reflect.ValueOf(m).MapKeys()
我如何遍历所有的密钥?
使用接受的答案:
for k, _ := range m { ... }