我如何创建一个对象的对象在Golang从数组采取的数据?



如果我有这个数组:

type Person struct {
ID      string `json:"id"`
Name    string `json:"name"`
Address string `json:"address"`
}
var Group = []Person{
{
ID:      "1",
Name:    "Linda",
Address: "London",
},
{
ID:      "2",
Name:    "George",
Address: "Paris",
},
{
ID:      "3",
Name:    "John",
Address: "Amsterdam",
},
}

如何生成一个对象的对象,其中每个对象中有一个特定的值是键,其余的键-值对在其中,如:

var Object = {
Linda: {
ID:      "1",
Address: "London",
},
George: {
ID:      "2",
Address: "Paris",
},
John: {
ID:      "3",
Address: "Amsterdam",
},
}

不是城里最聪明的问题我知道,但是请帮助!

我不完全确定您在这里所说的Object是什么意思,但是实现这一点的一种方法是通过map

例如:

package main
import "fmt"
func main(){
type Person struct {
ID      string `json:"id"`
Name    string `json:"name"`
Address string `json:"address"`
}
var Group = []Person{
{
ID:      "1",
Name:    "Linda",
Address: "London",
},
{
ID:      "2",
Name:    "George",
Address: "Paris",
},
{
ID:      "3",
Name:    "John",
Address: "Amsterdam",
},
}
personMap := map[string]Person{}
for _, person := range Group {
personMap[person.Name] = person
}
fmt.Println(personMap)
// Outputs: map[George:{2 George Paris} John:{3 John Amsterdam} Linda:{1 Linda London}]
}

然后你可以通过personMap["Linda"]

从地图上访问aPerson

最新更新