← ко всем постам
2026-05-31 · #basics

Структурные теги: строка, которая управляет библиотеками

Строка в бэктиках после поля структуры — это тег. Сам по себе он ничего не делает; его читают библиотеки через рефлексию, чтобы понять, как обращаться с полем.

type Product struct {
    ID    int    `json:"id" db:"product_id"`
    Title string `json:"title" validate:"required"`
}

Одно поле может нести теги для нескольких библиотек сразу: json для сериализации, db для маппинга на колонку, validate для проверки. Каждая читает свой ключ.

Механика

Под капотом это reflect.StructTag — обычная строка с парами ключ:"значение". Можно написать свой парсер тегов, но чаще достаточно того, что уже читают популярные пакеты.