gpt4 book ai didi

go - 如何创建对象数组 - Go?

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

我正在使用 GoMongoDB 并具有以下 MongoDB 架构

[   
{
"name":"sample",
"time": "2014-04-05",
"Qty":3
},
{
"name":"sample",
"time": "2014-04-05",
"Qty":3
}
]

我曾尝试使用以下代码来创建上述文档

elements := make([3]map[string]string)
elements["name"] = "karthick"
elements["date"] = "2014-04-05"
elements["qty"] = 3

fmt.Println(elements)

但它不起作用。

Error : cannot make type [3]map[string]string

任何建议将不胜感激

最佳答案

数组和 slice 是有区别的。数组是编译时对象,而 slice 是运行时对象。因此,数组比 slice 有更多的信息可以提供给编译器(例如长度)。

在您的代码中,您尝试创建一个包含 3 个元素的 map[string]string 数组。你可以这样做:

maps := [3]map[string]string{
make(map[string]string),
make(map[string]string),
make(map[string]string),
}

必须为每个映射调用 make,否则映射将未初始化 (nil)。

您还可以使用 make 创建一个包含 3 个(未初始化的)元素的 slice :

maps := make([]map[string]string, 3)

在这种情况下,您必须遍历 maps 并使用 make 初始化每个元素。

最简单的解决方案,以防您使用 mgo将是为您的数据创建一个结构:

type Item struct {
Name string `bson:name`
Date string `bson:date`
Qty int `bson:qty`
}

并在你的数组中使用它:

var items [3]*Item

关于go - 如何创建对象数组 - Go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22962625/

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