我有一个.ini配置文件,我想用它来初始化一个Configuration结构。
我想使用Configuration字段名称并遍历它们以使用 .ini 文件中的相应值填充我的新实例。
我认为实现这一目标的最佳方法可能是反射 API(也许我完全错了,告诉我......)
我的问题是我无法弄清楚如何访问字段的名称(如果至少可能的话)
这是我的代码:
package test
import(
"reflect"
"gopkg.in/ini.v1"
)
type Config struct {
certPath string
keyPath string
caPath string
}
func InitConfig(iniConf *ini.File) *Config{
config:=new(Config)
var valuePtr reflect.Value = reflect.ValueOf(config)
var value reflect.Value = valuePtr.Elem()
for i := 0; i < value.NumField(); i++ {
field := value.Field(i)
if field.Type() == reflect.TypeOf("") {
//here is my problem, I can't get the field name, this method does not exist... :'(
value:=cfg.GetSection("section").GetKey(field.GetName())
field.SetString(value)
}
}
return config
}
任何帮助表示赞赏...
温温酱
翻翻过去那场雪
相关分类