Go 如何创建地图<;字符串,列表<;SomeClass>&燃气轮机;在围棋中?
如何在Go中创建Go 如何创建地图<;字符串,列表<;SomeClass>&燃气轮机;在围棋中?,go,Go,如何在Go中创建地图?比如: var m map[string]list m = make(map[string]list) 你在寻找映射[字符串][]SomeClass 然而,你使用make的方式并不能解决这个问题。我个人建议使用复合文字语法进行初始化,如下所示: m := map[string][]SomeClass { "a": []SomeClass{SomeClass{SomeProperty: SomeValue}} } 如果你想使用make,你必须遍历映射并为每个键
地图
?比如:
var m map[string]list
m = make(map[string]list)
你在寻找<代码>映射[字符串][]SomeClass 然而,你使用make的方式并不能解决这个问题。我个人建议使用复合文字语法进行初始化,如下所示:
m := map[string][]SomeClass {
"a": []SomeClass{SomeClass{SomeProperty: SomeValue}}
}
如果你想使用make,你必须遍历映射并为每个键调用make,或者该键的[]SomeClass
数组将为nil。我的语法初始化如下;最外面的大括号用于映射,在它里面我声明一个键“a”,并初始化SomeClass的一个片段,在片段里面我初始化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)
}
在本例中,我初始化映射,然后开始迭代“cars”数组。对于每辆车,我检查它的
Make
是否有钥匙,如果有,然后我将模型
附加到带钥匙的切片上,否则,我将用模型实例化一个新切片。当然,这不是实际的工作代码,但它应该会给你一些想法。如果你能提供一个更完整的例子(比如你想放在地图上的汽车数据样本),那么我可以根据你的需要来做更多的调整,但我希望这能给你一个大致的想法。你正在寻找的<代码>映射[字符串][]SomeClass
然而,你使用make的方式并不能解决这个问题。我个人建议使用复合文字语法进行初始化,如下所示:
m := map[string][]SomeClass {
"a": []SomeClass{SomeClass{SomeProperty: SomeValue}}
}
如果你想使用make,你必须遍历映射并为每个键调用make,或者该键的[]SomeClass
数组将为nil。我的语法初始化如下;最外面的大括号用于映射,在它里面我声明一个键“a”,并初始化SomeClass的一个片段,在片段里面我初始化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)
}
在本例中,我初始化映射,然后开始迭代“cars”数组。对于每辆车,我检查它的
Make
是否有钥匙,如果有,然后我将模型
附加到带钥匙的切片上,否则,我将用模型实例化一个新切片。当然,这不是实际的工作代码,但它应该会给你一些想法。如果您提供了一个更完整的示例(如您想放在地图中的汽车数据示例),那么我可以根据您的需要对其进行更多的修改,但我希望这将为您提供总体思路。我尝试的是迭代对象列表并创建地图。假设我有一个汽车对象列表,汽车对象既有make也有model。我想迭代列表并创建一个地图,其中键是make,模型在地图值中作为汽车对象列表。“做这件事最好的方法是什么?”desiJoe编辑了一个可能让你朝着正确方向前进的例子。如果您需要进一步的指导,并且可以更新更多的信息,我可以提供一个更具体的示例。您不需要If语句append
将nil切片视为空切片(大多数函数也是如此)。@MadameElyse感谢您指出这一点,这样的代码更简单。我尝试的是迭代对象列表并创建一个映射。假设我有一个汽车对象列表,汽车对象既有make也有model。我想迭代列表并创建一个地图,其中键是make,模型在地图值中作为汽车对象列表。“做这件事最好的方法是什么?”desiJoe编辑了一个可能让你朝着正确方向前进的例子。如果您需要进一步的指导,并且可以更新更多的信息,我可以提供一个更具体的示例。您不需要If语句append
将nil片视为空片(大多数函数也是如此)。@MadameElyse感谢您指出这一点,这样代码就简单多了。