【go】Golang的sync.Map中存入struct,取出来是空数据

【go】Golang的sync.Map中存入struct,取出来是空数据

var Rooms sync.Map

type Room struct {

RoomID string

Time int64 "创建时间"

Player1 int "P1玩家ID"

Player2 int

Player1Accept bool "P1玩家是否接受游戏"

Player2Accept bool

}

如图所示,存入Rooms这个map的Player1和Player2是1和2,但是取出来的时候是0,这是什么原因呢?

真没看出来有什么不对的地方,基本用法就是这样的。

不知道你调用AddRoom的地方是什么样的?

写法有问题,GetRoom返回的Room对象即使Load失败也会返回一个未初始化的Room。还有就是通常使用Room指针去store和load,不然会有拷贝问题...不知道你是不是因为需求才这样写

第39行,如果ok==false的话,也返回了r, true
跟踪一下GetRoom,看看是不是没有找到这个room

另外if ok == true也可以写成if ok :)

回答

以上是 【go】Golang的sync.Map中存入struct,取出来是空数据 的全部内容, 来源链接: utcz.com/a/111879.html

回到顶部