문제

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 { ... }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top