【go】Golang的sync.Map中存入struct,取出来是空数据
var Rooms sync.Maptype 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