문제
Go Language Map에서 모든 키 목록을 얻는 방법이 있습니까? 요소의 수는 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]
}
Go Language Map에서 모든 키 목록을 얻는 방법이 있습니까?
ks := reflect.ValueOf(m).MapKeys()
모든 키를 어떻게 반복합니까?
허용 된 답변을 사용하십시오.
for k, _ := range m { ... }
제휴하지 않습니다 StackOverflow