Tipos y valores de reflejos en Go
Los reflejos en Go permiten a los desarrolladores inspeccionar y manipular tipos y valores en tiempo de ejecución. Comprender sus distinciones es crucial para un uso eficaz de la reflexión.
Tipo versus valor en reflexión
En la reflexión, reflect.TypeOf(i) devuelve un objeto reflect.Type , mientras que reflect.ValueOf(i) devuelve un objeto reflect.Value.
reflect.Type
reflect.Value
Ejemplo
En el fragmento de código:
func show(i interface{}) {
switch t := i.(type) {
case *Person:
t := reflect.TypeOf(i) // Get the type of *Person
v := reflect.ValueOf(i) // Get the value of i
tag := t.Elem().Field(0).Tag
name := v.Elem().Field(0).String()
}
}
Al comprender la diferencia entre tipos y valores en la reflexión, los desarrolladores pueden aprovechar el poder de la reflexión en varios escenarios, incluida la introspección, la invocación de métodos dinámicos y la serialización de datos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3