Расскажи про опыт использования собственных тегов при написании структур

«Расскажи про опыт использования собственных тегов при написании структур» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Собственные теги в 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)
  • Позволяют гибко настраивать поведение структур без изменения кода

Теги делают код декларативным и удобным для работы с внешними системами.