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 關注
- 280 瀏覽
添加回答
舉報