Función reflect.StructOf() en Golang con ejemplos

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.StructOf() en Golang se usa para obtener el tipo de estructura que contiene los campos. Para acceder a esta función, es necesario importar el paquete reflect en el programa.

Sintaxis:

func StructOf(fields []StructField) Type

Parámetros: Esta función toma solo un parámetro de StructFields(fields).

Valor devuelto: esta función devuelve el tipo de estructura que contiene los campos.

Los siguientes ejemplos ilustran el uso del método anterior en Golang:

Ejemplo 1:

// Golang program to illustrate
// reflect.SliceOf() Function 
  
package main
  
import (
    "fmt"
    "reflect"
)
  
// Main function
func main() {
  
    // use of StructOf method
    typ := reflect.StructOf([]reflect.StructField{
        {
            Name: "Height",
            Type: reflect.TypeOf(float64(0)),
        },
        {
            Name: "Name",
            Type: reflect.TypeOf("abc"),
        },
    })
  
    fmt.Println(typ)
  
}

Producción:

struct { Height float64; Name string }

Ejemplo 2:

// Golang program to illustrate
// reflect.SliceOf() Function 
  
package main
  
import (
    "fmt"
    "reflect"
)
  
// Main function
func main() {
  
    // use of StructOf method
    tt:= reflect.StructOf([]reflect.StructField{
        {
            Name: "Height",
            Type: reflect.TypeOf(0.0),
            Tag:  `json:"height"`,
        },
        {
            Name: "Name",
            Type: reflect.TypeOf("abc"),
            Tag:  `json:"name"`,
        },
    })
  
    fmt.Println(tt.NumField()) 
    fmt.Println(tt.Field(0))
    fmt.Println(tt.Field(1))
  
}

Producción:

2
{Height  float64 json:"height" 0 [0] false}
{Name  string json:"name" 8 [1] false}

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *