loops - sinoptico - Iterando sobre todas las claves de un mapa.
tipos de mapa conceptual (3)
¿Hay alguna forma de obtener una lista de todas las claves en un mapa de idiomas de Go? El número de elementos viene dado por len()
, pero si tengo un mapa como:
m := map[string]string{ "key1":"val1", "key2":"val2" };
¿Cómo itero sobre todas las claves?
¿Hay alguna forma de obtener una lista de todas las claves en un mapa de idiomas de Go?
ks := reflect.ValueOf(m).MapKeys()
¿Cómo itero sobre todas las claves?
Utilice la respuesta aceptada:
for k, _ := range m { ... }
Aquí hay una manera fácil de obtener una slice
de las claves del mapa.
// 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]
}
https://play.golang.org/p/JGZ7mN0-U-
for k, v := range m {
fmt.Printf("key[%s] value[%s]/n", k, v)
}
o
for k := range m {
fmt.Printf("key[%s] value[%s]/n", k, m[k])
}
Las especificaciones de idioma de Go for
sentencias especifican que el primer valor es la clave, la segunda variable es el valor, pero no tiene que estar presente.