Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
golang映射未添加元素_Go_Go Map - Fatal编程技术网

golang映射未添加元素

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

在我的代码中有一个battleFoundmap,我尝试添加如下元素:(battle不是nil)

但当我调试它时,它返回1:27:预期为“=”,发现“=”错误,但未放入其中。如何解决

这是地图和卡片结构

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)