0Pricing
Go Academy · Lección

¿Qué son las etiquetas de struct?

Añada metadatos a los campos

¿Qué son las etiquetas de struct? es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.

Qué son las etiquetas de struct

Una etiqueta de struct es una cadena de metadatos asociada a un campo de un struct. No afecta al valor del campo, pero contiene instrucciones para las bibliotecas que la leen.

Sintaxis de las etiquetas

Las etiquetas aparecen después del tipo del campo, entre comillas de cadena sin formato. Cada etiqueta es un par key:\"value\". Los pares múltiples se separan con espacios.

Una etiqueta habitual tiene este aspecto: json:\"name\".

Un struct con etiquetas

Aquí, un campo tiene una etiqueta json que indica a los codificadores que usen el nombre de clave en minúsculas.

package main

import "fmt"

type User struct {
	Name string "json:\"name\""
}

func main() {
	u := User{Name: "Ann"}
	fmt.Println(u.Name)
}

Las etiquetas son solo metadatos

Las etiquetas no cambian la forma en que el código usa el campo. u.Name sigue funcionando con normalidad. Las etiquetas solo importan para las bibliotecas que las inspeccionan mediante reflexión.

Varias etiquetas en un campo

Un solo campo puede contener varias claves de etiqueta, cada una utilizada por una biblioteca diferente.

package main

import "fmt"

type Product struct {
	Name string "json:\"name\" db:\"product_name\""
}

func main() {
	p := Product{Name: "Pen"}
	fmt.Println(p.Name)
}

Claves de etiqueta habituales

Entre las claves de etiqueta más utilizadas se incluyen:

  • json: codificación JSON
  • xml: codificación XML
  • db: asignación de columnas de base de datos
  • validate: reglas de validación

Lectura de etiquetas mediante reflexión

El paquete reflect permite leer etiquetas en tiempo de ejecución. field.Tag.Get(\"json\") devuelve el valor de la clave json.

package main

import (
	"fmt"
	"reflect"
)

type User struct {
	Name string "json:\"name\""
}

func main() {
	t := reflect.TypeOf(User{})
	f := t.Field(0)
	fmt.Println(f.Tag.Get("json"))
}

El método Tag.Get

Tag.Get(key) devuelve el valor de una clave o una cadena vacía si la clave está ausente. Tag.Lookup(key) también indica si la clave existía.

package main

import (
	"fmt"
	"reflect"
)

type User struct {
	Name string "json:\"name\""
}

func main() {
	f := reflect.TypeOf(User{}).Field(0)
	val, ok := f.Tag.Lookup("json")
	fmt.Println(val, ok)
}

Convención de formato de las etiquetas

El formato estándar de las etiquetas es key:\"value\", sin espacios alrededor de los dos puntos. Las bibliotecas esperan esta convención. Las etiquetas con un formato incorrecto pueden ignorarse silenciosamente.

Por qué usar etiquetas

Las etiquetas permiten mantener las reglas de asignación junto a los campos que describen, en lugar de colocarlas en una configuración independiente. Un struct puede servir para la salida JSON, las filas de una base de datos y la validación, todo ello controlado mediante etiquetas.

Etiquetas en campos no exportados

Las etiquetas de los campos no exportados (en minúsculas) son visibles mediante reflexión, pero la mayoría de los codificadores omiten por completo los campos no exportados. Mantenga exportados (con inicial mayúscula) los campos que quiera serializar.

Comprobación rápida

¿Cuál es la finalidad de una etiqueta de struct?

Resumen

Etiquetas de struct:

  • Metadatos asociados a campos con el formato key:\"value\"
  • No afectan al código normal; se leen mediante reflexión
  • Las usan json, xml, db, validate y muchas otras bibliotecas

Preguntas frecuentes

¿La lección «¿Qué son las etiquetas de struct?» es gratis?

Sí — el texto completo de «¿Qué son las etiquetas de struct?» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.

¿Qué aprenderé en «¿Qué son las etiquetas de struct?»?

Añada metadatos a los campos Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Go Academy?

No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «¿Qué son las etiquetas de struct?»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Go Academy?

Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. ¿Qué son las etiquetas de struct?
  2. Etiquetas JSON
  3. Bibliotecas de validación
  4. Análisis personalizado de etiquetas
← Volver a Go Academy