【发布时间】:2016-04-15 07:11:13
【问题描述】:
我的问题分为两部分:(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,但在迭代 struct 时遇到了困难。我想避免使用 map,因为 Go 不允许我将其存储在 const 中。
【问题讨论】:
-
你有多少子任务?需要您的子任务名称吗?
-
假设一个固定但任意的数量,这意味着问题可能稍后有 10 个子任务,但一旦我定义它,我不希望数据结构增长或缩小。我希望为嵌套结构命名的原因是我不希望唯一 ID 之间发生冲突。
-
但是你需要名字吗?喜欢
task2或subtask1?它们会在任何地方使用吗? -
我想要
task1的唯一原因是因为它们是独特的任务,不应该发生冲突。我想要subtask1的原因是因为我会以不同的方式对待它们(某些 API 需要不同的标头),否则我会将它们放入数组中。 -
在问题中添加这个怎么样?因为从您当前的“代码”中,没有人能猜到您想区别对待它们
标签: data-structures go iterator idioms