Struct tag — это метаданные, прикреплённые к полю структуры в Go, которые дают дополнительную информацию о том, как это поле должно обрабатываться различными пакетами и инструментами. Теги записываются как строковые литералы в обратных кавычках.
Struct теги появляются сразу после типа поля и перед следующим полем:
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
Формат следует соглашению key:"value", где key определяет пакет или инструмент, который должен интерпретировать тег.
gormvalidate:"required"Теги не проверяются самим Go. Вместо этого пакеты используют рефлексию для чтения тегов во время выполнения и соответственно меняют своё поведение. Например:
import "encoding/json"
data := []byte(`{"name":"John","age":30}`)
var user User
json.Unmarshal(data, &user)
Пакет json читает теги json:"name" и json:"age", чтобы корректно связать JSON-поля с полями структуры.
`json:"name" db:"user_name"`omitempty, чтобы исключить пустые поля из JSON-вывода: `json:"name,omitempty"`Struct tags компилируются в Go бинарник и enforced Go runtime, который автоматически обрабатывает их интерпретацию во время выполнения программы.
Новый — ещё не проверен сообществом
Вы