Встроенные структуры получают все теги и устанавливают значения для всех полей на основе тега. - PullRequest
0 голосов
/ 15 марта 2019

Я разрабатываю компонент конфигурации, в котором я хочу установить переменную ENV для каждого поля в структуре go.

например.

type SubStruct struct {
    Field int `env:"ENV_INT"`
}

type Config struct {
    Name string `env:"APP_NAME"`
    Sub1 struct {
        Sub11 struct {
            Value string `env:"ENV_VAR"`
        }
        Sub12 SubStruct
    } 
} 

То, чего я хочу достичь, это:

  1. Рекурсивно получить значения всех env ключей
  2. Установить значение в зависимости от типа поля

Итак, в основном два вопроса:

  • Есть ли какая-нибудь библиотека в go, которая предоставляет методы для установки значений с помощью отражения (например, как частные методы в пакете json)?

  • Есть ли какой-нибудь метод / функция, которая может рекурсивно анализировать вашу структуру и получать все теги из структуры?


редактирование: - обновлены структуры - переименованы запутанные имена полей (из встраивания в sub)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...