• 08/09/2024 2:27 AM

¿Para qué nos sirven los Tags?

porJesus Flores

Ago 21, 2021

Una etiqueta (tag) es útil para adjuntar meta-información al campo o la propiedad con la que deseamos realizar mapeos mediante la reflexión. Usualmente son utilizados para proporcionar información de transformación acerca de como codificar o decodificar una propiedad de una estructura desde otro formato (por ejemplo almacenar o recuperarla desde de una base de datos), pero también puede ser utilizada para almacenar cualquier meta-información que deseemos, especialmente cuando trabajemos con Formatos JSON.

Veamos un ejemplo:

package main

import (
	"fmt"
	"reflect"
)

type Jugador struct {
	Nombre string `mitag:"MiNombre"`
	Email  string `mitag:"MiEmail"`
}

func main() {
	delantero := Jugador{"Messi", "messi@psg.com"}
	delanteroType := reflect.TypeOf(delantero)

	for _, nombreCampo := range []string{"Nombre", "Email"} {
		campo, encontrado := delanteroType.FieldByName(nombreCampo)
		if !encontrado {
			continue
		}
		fmt.Printf("\nCampo: Jugador.%s\n", nombreCampo)
		fmt.Printf("\tValor completo del tag : %q\n", campo.Tag)
		fmt.Printf("\tValor de  'mitag': %q\n", campo.Tag.Get("mitag"))
	}
}

Como podemos observar haciendo uso del paquete reflect podemos hacer reflexion del objeto delantero y podemos extrare el tag completo y el valor correspondiente a cada tag.

por Jesus Flores

Ingeniero de Software y Agile Coach

Deja un comentario

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