gpt4 book ai didi

go - 如何在 Go 中创建一个 Map>?

转载 作者:IT王子 更新时间:2023-10-29 02:29:52 27 4
gpt4 key购买 nike

如何创建 Map<String, List<SomeClass>>在围棋?像这样的东西:

var m map[string]list
m = make(map[string]list)

最佳答案

您正在寻找; map[string][]SomeClass

但是,您使用 make 的方式不会削减它。我个人建议使用复合文字语法进行初始化,它看起来像这样;

m := map[string][]SomeClass {
"a": []SomeClass{SomeClass{SomeProperty: SomeValue}}
}

如果您想使用 make,则必须遍历 map 并为每个键调用 make,否则该键的 []SomeClass 数组将为 nil。我的语法初始化如下;最外层的大括号用于映射,在其中我声明了一个键“a”并初始化了 SomeClass 的一个 slice ,在 slice 中我初始化了一个 SomceClass 的实例,将 SomeProperty 设置为 SomeValue。

如果您出于某种原因非常喜欢使用 make,我可以添加另一个以这种方式初始化集合的示例,我只是个人觉得它更复杂。

编辑:

这里有一些示例更接近您可能正在寻找的内容

var m map[string][]Model
m = make(map[string][]Model)

for i, _ := range Cars {
m[Cars[i].Make] = append(m[Cars[i].Make], Cars[i].Model)
}

在这个例子中,我初始化了 map ,然后我开始遍历“cars”数组。对于每辆车,我检查它是否有 Make 的键,如果有,然后我将 Model 附加到带有该键的 slice ,否则,我实例化一个模型的新 slice 。当然,这不是实际的工作代码,但它应该给你一些想法。如果您提供了一个更完整的示例(例如您想放入 map 中的汽车数据示例),那么我可以根据您的需要对其进行更多调整,但我希望这能为您提供总体思路。

关于go - 如何在 Go 中创建一个 Map<String, List<SomeClass>>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667468/

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