🟡 Средний · 2 очк. Рефлексия
Как в Go прочитать теги полей структуры (struct tags) через рефлексию?
A reflect.Type.Field(i).Tag и tag.Get("json") или tag.Lookup("json")
B Только через парсинг строки Tag вручную
C Через специальный пакет encoding/structtag
D Поле не содержит тегов, только имя и тип
Объяснение вопроса

У reflect.StructField есть поле Tag типа reflect.StructTag. Методы Get(key) и Lookup(key) извлекают значение тега по ключу.

t := reflect.TypeOf(User{})
for i := 0; i < t.NumField(); i++ {
    f := t.Field(i)
    jsonVal := f.Tag.Get("json")
    fmt.Println(f.Name, "json:", jsonVal)
}

Lookup возвращает второе значение bool, чтобы отличить отсутствие тега от пустого значения.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.