Для чего нужен tag

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

Ответ

Тег (tag) в Go используется для добавления метаданных к полям структуры. Он задается в виде строки после типа поля и позволяет:

  1. Управлять сериализацией (JSON, XML и др.):
    type User struct {
        Name string `json:"name" xml:"username"`
        Age  int    `json:"age,omitempty"`
    }
`json:"name"` указывает имя поля при кодировании в JSON.
  1. Валидацию (например, в библиотеках типа validator):
    type Request struct {
        Email string `validate:"required,email"`
    }
  1. ORM-маппинг (GORM, SQLx):
    type Product struct {
        ID uint `gorm:"primaryKey"`
    }

Теги разбираются через рефлексию (reflect). Синтаксис: `key:"value"`, значения могут содержать запятые для разделения параметров.