El lenguaje Go proporciona una implementación de soporte incorporada de la reflexión en tiempo de ejecución y permite que un programa manipule objetos con tipos arbitrarios con la ayuda del paquete de reflexión. La función reflect.MapKeys() en Golang se usa para obtener un segmento que contiene todas las claves presentes en el mapa, en un orden no especificado. Para acceder a esta función, es necesario importar el paquete reflect en el programa.
Sintaxis:
func (v Value) MapKeys() []ValueParámetros: Esta función no acepta ningún parámetro.
Valor de retorno: esta función devuelve un segmento que contiene todas las claves presentes en el mapa, en un orden no especificado.
Los siguientes ejemplos ilustran el uso del método anterior en Golang:
Ejemplo 1:
// Golang program to illustrate // reflect.MapKeys() Function package main import ( "fmt" "reflect" ) // Main function func main() { key := 10 value := "Geeksforgeeks" mapType := reflect.MapOf(reflect.TypeOf(key), reflect.TypeOf(value)) mapValue := reflect.MakeMap(mapType) mapValue.SetMapIndex(reflect.ValueOf(key), reflect.ValueOf(value)) keys := mapValue.MapKeys() fmt.Println(keys) }
Producción:
[<int Value>]
Ejemplo 2:
// Golang program to illustrate // reflect.MapKeys() Function package main import ( "fmt" "reflect" ) // Main function func main() { key := 1 value := "abc" mapType := reflect.MapOf(reflect.TypeOf(key), reflect.TypeOf(value)) mapValue := reflect.MakeMap(mapType) mapValue.SetMapIndex(reflect.ValueOf(key), reflect.ValueOf(value)) mapValue.SetMapIndex(reflect.ValueOf(2), reflect.ValueOf("def")) mapValue.SetMapIndex(reflect.ValueOf(3), reflect.ValueOf("gh")) keys := mapValue.MapKeys() for _, k := range keys { c_key := k.Convert(mapValue.Type().Key()) c_value := mapValue.MapIndex(c_key) fmt.Println("key :", c_key, " value:", c_value) } }
Producción:
key : 1 value: abc key : 2 value: def key : 3 value: gh
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA