gpt4 book ai didi

data-structures - 在 Go 中存储和迭代命名嵌套数据结构的惯用方法?

转载 作者:数据小太阳 更新时间:2023-10-29 03:16:12 26 4
gpt4 key购买 nike

我的问题分为两个:(1) 为下面的 taskList 存储数据的最佳方式是什么,以及 (2) 迭代这种结构的最佳方式是什么?

我想要命名 task1 因为它们是独特的任务并且不应该有 ID 冲突。我想要单独命名为 subtask0,因为它们是具有不同要求的独特任务。

下面是我意图的伪围棋表示:

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 中。

最佳答案

根据我在您的伪代码中看到的内容以及我从评论中听到的内容,我会选择 slice of slices of struct:

所以我会定义一个结构:

type subtask struct {
name string
kind int
}

name 是你的 api.example.com/stuff/kind 是你的子任务的一种类型:

I will be treating them differently (some API's want different headers)

那么您的列表将如下所示:

list := [][]subtask{
[]subtask{subtask{"example1", 1}, subtask{"example2", 1}},
[]subtask{subtask{"example3", 1}, subtask{"example4", 2}},
}

完整的示例在这里 Playground

关于data-structures - 在 Go 中存储和迭代命名嵌套数据结构的惯用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34713699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com