我的问题分为两个:(1)在下面的taskList中存储数据的最佳方法是什么,以及(2)迭代这种结构的最佳方法是什么?
我想要task1
命名,因为它们是唯一的任务,不应该有ID冲突。我希望单独命名为subtask0
,因为它们是具有不同要求的独特任务。
下面是我的意图的伪Go表示:
package main
import "fmt"
fn main() {
const taskList := {
"task1": {
"subtask0": "api.example.com/stuff/"
"subtask1": "api.example.com/stuff/"
"subtask2": "api.example.com/stuff/"
}
"task2": {
"subtask0": "api.example.com/stuff/"
"subtask1": "api.example.com/stuff/"
"subtask2": "api.example.com/stuff/"
}
}
for i := range taskList {
for j := range taskList[i] {
fmt.Printf("%s\n", taskList[i][j])
}
}
}
我已经尝试过struct,但是我很难迭代结构。我想避免map
,因为Go不允许我将其存储在const
。
答案 0 :(得分:1)
基于我在你的伪代码中看到的内容,并根据我从评论中听到的内容,我会选择结构片段:
所以我要定义一个结构:
type subtask struct {
name string
kind int
}
其中name
将是您的api.example.com/stuff/
,而kind
将是您的子任务类型:
我将以不同的方式对待它们(某些API需要不同 头)
然后你的清单看起来像这样:
list := [][]subtask{
[]subtask{subtask{"example1", 1}, subtask{"example2", 1}},
[]subtask{subtask{"example3", 1}, subtask{"example4", 2}},
}
完全有效的例子就在这里 Playground