1 回答
TA贡献1827条经验 获得超8个赞
我设法通过更改我的 YAML 和结构的格式来解决这个问题,然后直接解组到结构中。
新的结构。
type Categories struct {
Category []struct {
Name string `yaml:"CategoryName"`
Task []struct {
Name string `yaml:"TaskName"`
PM float64 `yaml:"PM"`
TC float64 `yaml:"TC"`
STC float64 `yaml:"STC"`
Optional bool `yaml:"Optional"`
} `yaml:"Tasks"`
} `yaml:"Categories"`
}
YAML 文件的新格式以支持结构中的内容。
Categories:
- CategoryName: Category 1
Tasks:
- TaskName: Test 1
PM: 1
TC: 0
STC: 1
Optional: false
- TaskName: Test 2
PM: 2
TC: 0
STC: 2
Optional: false
- CategoryName: Category 2
Tasks:
- TaskName: Test 3
PM: 1
TC: 2
STC: 3
Optional: true
将 YAML 文件直接解组为新结构
var tasks Categories
file, err := ioutil.ReadFile("config.yaml")
if err != nil {
log.Fatal(err)
}
yaml.Unmarshal(file, &tasks)
这解决了我的问题 - 不再使用地图以便保留顺序并以我发现易于循环的方式使用结构。
- 1 回答
- 0 关注
- 223 浏览
添加回答
举报