Go: тегиСтруктуры один из основных типов данных в Golang. Они используются практически повсеместно (пользовательские типы, конфиги и т.д.). Более того к полям структур через теги могут быть добавлены метаданные, которые нужны для маппинга данных через encoding/json или encoding/xml, валидации, ORM и др. Рассмотрим использование метаданных на примере маппинга структуры в JSON и обратно. Пусть у нас есть структура, описанная следующим образом:
В случая отсутствия тегов json.Marshal вернул бы JSON следующего вида:
В случая же с тегами мы имеем следующий результат:
Использование метаданных позволяет при маппинге выполнить переименование полей, убрать ненужные при помощи `json:"-"` . За более детальной информацией можно обратиться к описанию пакетов JSON и XML . Чтобы понять как работают теги внутри давайте попробуем создать свой набор метаданных и извлечь их. Для этого нам понадобиться пакет reflect. Давайте рассмотрим, как это работает:
В результате выполнения программы мы получим
Через пакет reflect нам доступна базовая информация о структуре User: тип, вид, список полей и список связанных с ними тегов.
03.05.2017 |
популярные тэги
наука
интересно
новости
технологии
история
go
golang
программирование
it
искусственный интеллект
путешествия
природа
космос
ai
базы данных
медицина
science
анализ текстов
ии
text mining
робототехника
авто
музыка
роботы
интернет
нейронные сети
robots
space
вокруг света
postgresql
алгоритмы
гитара
животные
оружие
google
nosql
авиация
здоровье
техника
auto
|