Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpRfTg 146 of 280 menu
◀ ▶

Метка поля структуры в Go

У поля может быть строка-метка, и ее читают по имени ключа. Метка пишется в обратных кавычках сразу после типа поля и хранит пары ключ и текст, разделенные пробелами.

В этом разделе метку только читают: она не превращает структуру в текст и не отправляет данные по сети. Такую строку удобно проверить в коде, который сам решает, как использовать ключ.

Объявим пользователя с меткой у имени и выведем значение ключа json:

package main import ( "fmt" "reflect" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { t := reflect.TypeOf(User{}) field, _ := t.Field(0) fmt.Println(field.Tag.Get("json")) }

На экране "name". Метод Get у тега ищет нужный ключ и возвращает текст после двоеточия. Если ключа нет, ответ будет пустой строкой.

Прочитаем метку у второго поля тем же способом:

package main import ( "fmt" "reflect" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { t := reflect.TypeOf(User{}) field, _ := t.Field(1) fmt.Println(field.Tag.Get("json")) }

Дана структура:

type Item struct { Title string `json:"title"` }

Выведите текст метки json у поля Title.

Дана структура:

type Row struct { Code int `json:"code" db:"id"` }

Прочитайте метку с ключом db у поля Code и выведите ее.

Дана структура:

type Note struct { Text string `json:"text"` }

Скажите, что вернет чтение метки с ключом xml у поля Text.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить