我正在使用Viper和Cobra构建一个小应用程序。目前,我有一个这样的 yaml 文件:
hosts:
- name: host1
port: 90
key: my_key
- name: host2
port: 90
key: prompt
我已经阅读了使用 Viper 的配置文件。
当我运行viper.Get("hosts")
它时,它会返回一个接口(或一部分接口?)。这是我最终得到的数据结构:
([]interface {}) (len=2 cap=2) {
(map[interface {}]interface {}) (len=3) {
(string) (len=4) "name": (string) (len=20) "host1",
(string) (len=4) "port": (int) 90,
(string) (len=3) "key": (string) (len=6) "my_key"
},
(map[interface {}]interface {}) (len=3) {
(string) (len=3) "key": (string) (len=6) "prompt",
(string) (len=4) "name": (string) (len=20) "host2",
(string) (len=4) "port": (int) 90
}
}
我想在这里做的是遍历每个数组元素并使用名称、端口和键的值执行操作。
我对 Golang 中的接口完全陌生,所以这不是很清楚,关于这方面的文献非常混乱:(
任何帮助表示赞赏。