在Go语言中,获取map的所有key可以使用内置的for-range语法。例如,对于一个名为m的map,你可以这样写:

for key := range m {
    fmt.Println(key)
}

这样会循环遍历m的所有key,并将每个key的值打印出来。你也可以将key的值赋给一个变量,然后在循环体内使用这个变量:

for key := range m {
    fmt.Println("The value for", key, "is", m[key])
}

如果你只需要遍历map的key,你可以省略第二个参数,即写成这样:

for key := range m {
    fmt.Println(key)
}

如果你希望获取map的所有key并以切片的形式返回,可以使用如下代码:

keys := make([]string, 0, len(m))
for key := range m {
    keys = append(keys, key)
}

这样就会创建一个字符串切片,并将map的所有key存储到这个切片中。注意,这里假设map的key是字符串类型。如果map的key是其他类型,则需要将切片类型和append函数的参数相应地替换为对应的类型。