Answers:
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语句的Go语言规范指定第一个值是键,第二个变量是值,但不必存在。
这是获取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{}),@ RobertT.McGibbon,您需要更改函数“ prototype”
                    map[interface{}]interface{}。Go不支持泛型。您无法使用带有map接受具有不同键类型的映射的参数的函数来创建该函数。
                    有没有一种方法可以获取Go语言映射中所有键的列表?
ks := reflect.ValueOf(m).MapKeys()
如何遍历所有键?
使用公认的答案:
for k, _ := range m { ... }
              for _, k := range v.MapKeys(),因为在您的示例中,k将是键片的int索引