Para que servem as tags de struct em Go e como usá-las?
Olá a todos! Comecei a estudar Go recentemente e me deparei com algo chamado tags de struct. Vejo que nos exemplos de código frequentemente escrevem algo como:
```go
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
```
Ou ainda:
```go
type Config struct {
Host string `yaml:"host"`
Port int `yaml:"port"`
}
```
Eu entendo que são metadados entre crases, mas para que servem exatamente? Sem eles o código também funciona. Tentei remover as tags — e o programa compilou, mas depois, ao trabalhar com JSON, meus campos começaram a ser nomeados com letra maiúscula, e não como eu queria.
Expliquem, por favor, para leigos: o que são tags de struct, por que foram criadas e em quais situações reais são aplicadas? Tenho especial interesse em como criá-las e usá-las por conta própria, não apenas para JSON/YAML. Existem algumas armadilhas? Desde já, obrigado!
<<>>
O que são tags de struct e para que servem?
As tags