我想知道这种逻辑在 Golang 中是否可行。我有一个这样的 yaml 文件:
initSteps:
- "pip install --upgrade pip"
- "python3 --version"
buildSteps:
- "pip install ."
runProcess:
- "python3 test.py"
并且正在使用gopkg.in/yaml.v3迭代这些步骤。我在下面有一个函数,可以将指令放入这样的地图中:
func init() {
// add map from yaml to steps
f, err := ioutil.ReadFile(devrun)
if err != nil {
panic(err)
}
steps = make(map[interface{}]interface{})
err2 := yaml.Unmarshal(f, &steps)
if err2 != nil {
panic(err2)
}
}
如果键匹配,在我的main函数中有这个来迭代值:
for k, v := range steps {
if k == "initSteps" {
s := reflect.ValueOf(v)
for i := 0; i < s.Len(); i++ {
singleVertex := s.Index(i).Elem()
fmt.Println(singleVertex)
}
}
}
我想看看是否可以从中迭代密钥,steps以及我将如何添加它。这样我可以,如果k.initSteps:来自 yaml 文件的密钥将始终相同,唯一改变的是步骤在他们之下。
慕沐林林
相关分类