Ответ
Собственные теги в Go позволяют добавлять метаданные к полям структур, которые можно использовать для валидации, сериализации, ORM и других задач. Например, тег json управляет поведением при маршалинге/анмаршалинге JSON.
type User struct {
Name string `json:"name" validate:"required,min=3"`
Age int `json:"age" validate:"gte=18"`
Password string `json:"-"` // поле будет игнорироваться
}
Ключевые моменты:
- Теги пишутся в обратных кавычках после типа поля
- Можно использовать несколько тегов через пробел
- Доступ через reflection:
field.Tag.Get("json") - Часто применяются в популярных библиотеках (GORM, validator, encoding/json)
- Позволяют гибко настраивать поведение структур без изменения кода
Теги делают код декларативным и удобным для работы с внешними системами.