戈兰地图没有添加元素



我的代码中有battleFoundmap,我尝试添加这样的元素:(battle不是nil(

battleFoundMap[battle.ID] = battle.Answers

但当我调试它时,它返回1:27:expected'===',find'='error and not put in it。如何解决它?

这是地图和卡片结构

var battleFoundMap map[uint][]models.Card
type Card struct {
gorm.Model
UserId             uint      `json:"userid"`
Name               string    `json:"name"`
Meaning            string    `json:"meaning"`
}

添加到@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初始化映射会创建一个空映射,该映射可用于读取和写入操作。

// as you can't declare a map globally using shorthands
var m map[string]string
m = make(map[string]string)

或者,使用人手不足的

m := make(map[string]string)

在使用地图之前,您应该使用make初始化地图。

更改

var battleFoundMap map[uint][]models.Card

battleFoundMap := make(map[uint][]models.Card)

这就足够了。

相关内容

  • 没有找到相关文章

最新更新