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 reflect. La función reflect.MakeMap() en Golang se usa para crear un nuevo mapa con el tipo especificado. Para acceder a esta función, es necesario importar el paquete reflect en el programa.
Sintaxis:
func MakeMap(typ Type) ValueParámetros: Esta función toma los siguientes parámetros:
- typ : Este parámetro es el Tipo.
Valor devuelto: esta función devuelve un mapa recién creado.
Los siguientes ejemplos ilustran el uso del método anterior en Golang:
Ejemplo 1:
// Golang program to illustrate // reflect.MakeMap() Function package main import ( "fmt" "reflect" ) // Main function func main() { var str map[int]string var strValue reflect.Value = reflect.ValueOf(&str) indirectStr := reflect.Indirect(strValue) //Use of MakeMap() method valueMap := reflect.MakeMap(indirectStr.Type()) fmt.Printf("ValueMap is [%v] .", valueMap) }
Producción:
ValueMap is [map[]] .
Ejemplo 2:
// Golang program to illustrate // reflect.MakeMap() Function package main import ( "fmt" "reflect" ) // Main function func main() { intSlice := make([]int, 0) mapStringInt := make(map[string]int) sliceType := reflect.TypeOf(intSlice) mapType := reflect.TypeOf(mapStringInt) intSliceReflect := reflect.MakeSlice(sliceType, 0, 0) mapReflect := reflect.MakeMap(mapType) v := 100 rv := reflect.ValueOf(v) intSliceReflect = reflect.Append(intSliceReflect, rv) intSlice2 := intSliceReflect.Interface().([]int) fmt.Println(intSlice2) k := "GeeksforGeeks" rk := reflect.ValueOf(k) mapReflect.SetMapIndex(rk, rv) mapStringInt2 := mapReflect.Interface().(map[string]int) fmt.Println(mapStringInt2) }
Producción:
[100] map[GeeksforGeeks:100]
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA