如果我有这个数组:
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"]
Person