嵌入式结构获取所有标签并根据标签为所有字段设置值

时间:2019-03-15 12:28:43

标签: go

我正在设计配置组件,我想为go结构上的每个字段设置ENV变量。

例如

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包中的私有方法)?

  • go中是否有任何方法/函数可以递归解析结构并从结构中获取所有标记?


编辑: -更新的结构 -重命名混乱的字段名称(从嵌入到子字段)

0 个答案:

没有答案