0Pricing
Go Academy · Aula

O que são tags de structs

Associe metadados a campos

O que são tags de structs é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.

O que são etiquetas de estrutura

Uma etiqueta de estrutura é uma string de metadados associada a um campo de uma estrutura. Ela não afeta o valor do campo, mas contém instruções para bibliotecas que a leem.

Sintaxe das etiquetas

As etiquetas aparecem depois do tipo do campo, delimitadas por aspas de string bruta. Cada etiqueta é um par key:"value". Vários pares são separados por espaços.

Uma etiqueta típica se parece com json:"name".

Uma estrutura com etiqueta

Aqui, um campo contém uma etiqueta json que instrui os codificadores a usar o nome da chave em minúsculas.

package main

import "fmt"

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

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

Etiquetas são apenas metadados

As etiquetas não alteram a forma como seu código usa o campo. u.Name continua funcionando normalmente. As etiquetas só importam para bibliotecas que as inspecionam por meio da reflexão.

Várias etiquetas em um campo

Um único campo pode conter várias chaves de etiqueta, cada uma usada por uma 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)
}

Chaves de etiqueta comuns

As chaves de etiqueta usadas com frequência incluem:

  • json - codificação JSON
  • xml - codificação XML
  • db - mapeamento de colunas do banco de dados
  • validate - regras de validação

Lendo etiquetas por reflexão

O pacote reflect permite ler etiquetas durante a execução. field.Tag.Get("json") retorna o valor da chave 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"))
}

O método Get da etiqueta

Tag.Get(key) retorna o valor de uma chave ou uma string vazia se a chave estiver ausente. Tag.Lookup(key) também informa se a chave existia.

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)
}

Convenção de formato das etiquetas

O formato padrão de etiqueta é key:"value", sem espaços ao redor dos dois-pontos. As bibliotecas esperam essa convenção. Etiquetas malformadas podem ser ignoradas silenciosamente.

Por que usar etiquetas

As etiquetas permitem manter as regras de mapeamento junto aos campos que descrevem, em vez de colocá-las em uma configuração separada. Uma estrutura pode servir à saída JSON, às linhas do banco de dados e à validação, tudo controlado por etiquetas.

Etiquetas em campos não exportados

As etiquetas de campos não exportados, isto é, campos em minúsculas, ficam visíveis por meio da reflexão, mas a maioria dos codificadores ignora completamente os campos não exportados. Mantenha exportados, com inicial maiúscula, os campos que você quiser serializar.

Verificação rápida

Qual é a finalidade de uma etiqueta de estrutura?

Recapitulação

Etiquetas de estrutura:

  • Metadados associados a campos no formato key:"value"
  • Não afetam o código normal; são lidas por meio da reflexão
  • Usadas por json, xml, db, validate e outras ferramentas

Perguntas Frequentes

A aula “O que são tags de structs” é grátis?

Sim — o texto completo de “O que são tags de structs” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.

O que vou aprender em “O que são tags de structs”?

Associe metadados a campos Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Go Academy?

Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “O que são tags de structs”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Go Academy?

Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que são tags de structs
  2. Tags JSON
  3. Bibliotecas de validação
  4. Análise personalizada de tags
← Voltar para Go Academy