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.FieldByName() en Golang se usa para obtener el campo de estructura con el nombre dado. Para acceder a esta función, es necesario importar el paquete reflect en el programa.
Sintaxis:
func (v Value) FieldByName(name string) ValueParámetros: esta función acepta solo parámetros individuales.
- nombre: este parámetro es el tipo de string.
Valor devuelto: esta función devuelve el campo de estructura con el nombre dado.
Los siguientes ejemplos ilustran el uso del método anterior en Golang:
Ejemplo 1:
// Golang program to illustrate // reflect.FieldByName() Function package main import ( "fmt" "reflect" ) type Struct1 struct { Var1 string Var2 string Var3 float64 Var4 float64 } // Main function func main() { NewMap := make(map[string]*Struct1) NewMap["abc"] = &Struct1{"abc", "def", 1.0, 2.0} subvalMetric := "Var1" for _, Value:= range NewMap { s := reflect.ValueOf(&Value).Elem() println(s.String()) println(s.Elem().String()) // use of FieldByName() method metric := s.Elem().FieldByName(subvalMetric).Interface() fmt.Println(metric) } }
Producción:
<*main.Struct1 Value> <main.Struct1 Value> abc
Ejemplo 2:
// Golang program to illustrate // reflect.FieldByName() Function package main import ( "fmt" "reflect" ) // Main function func main() { type t struct { N int } var n = t{76} fmt.Println(n.N) // use of FieldByName() method reflect.ValueOf(&n).Elem().FieldByName("N").SetInt(4) fmt.Println(n.N) }
Producción:
76 4
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA