golang映射未添加元素
在我的代码中有一个battleFoundmap,我尝试添加如下元素:(battle不是nil) 但当我调试它时,它返回1:27:预期为“=”,发现“=”错误,但未放入其中。如何解决 这是地图和卡片结构golang映射未添加元素,go,go-map,Go,Go Map,在我的代码中有一个battleFoundmap,我尝试添加如下元素:(battle不是nil) 但当我调试它时,它返回1:27:预期为“=”,发现“=”错误,但未放入其中。如何解决 这是地图和卡片结构 var battleFoundMap map[uint][]models.Card type Card struct { gorm.Model UserId uint `json:"userid"` Name
var battleFoundMap map[uint][]models.Card
type Card struct {
gorm.Model
UserId uint `json:"userid"`
Name string `json:"name"`
Meaning string `json:"meaning"`
}
你应该在使用地图之前用make初始化它 改变
var battleFoundMap map[uint][]models.Card
到
这应该足够了。再加上@ShivaKishore的答案 当您声明像,
var name map[KeyType]ValueType这样的映射时
。此映射的值为nil
,长度为0
nil
映射没有键值,也不能添加。它的行为类似于读取操作的空映射,但如果要向其写入数据,则会导致运行时死机
var m map[string]string
// reading
m["foo"] == "" // works.
// writing
m["foo"] = "bar" // will panic.
但是,使用make
初始化映射会创建一个空映射,该映射可用于读写操作
//因为不能使用速记全局声明映射
var m映射[string]字符串
m=make(映射[字符串]字符串)
或者,使用速记
m := make(map[string]string)
var m map[string]string
// reading
m["foo"] == "" // works.
// writing
m["foo"] = "bar" // will panic.
m := make(map[string]string)