Я разрабатываю компонент конфигурации, в котором я хочу установить переменную 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
}
}
То, чего я хочу достичь, это:
- Рекурсивно получить значения всех
env
ключей
- Установить значение в зависимости от типа поля
Итак, в основном два вопроса:
Есть ли какая-нибудь библиотека в go, которая предоставляет методы для установки значений с помощью отражения (например, как частные методы в пакете json)?
Есть ли какой-нибудь метод / функция, которая может рекурсивно анализировать вашу структуру и получать все теги из структуры?
редактирование:
- обновлены структуры
- переименованы запутанные имена полей (из встраивания в sub)