H5W3
当前位置:H5W3 > go > 正文

【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 🙂

回答

本文地址:H5W3 » 【go】Golang的sync.Map中存入struct,取出来是空数据

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址