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,这是什么原因呢?
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,这是什么原因呢?
写法有问题,GetRoom返回的Room对象即使Load失败也会返回一个未初始化的Room。还有就是通常使用Room指针去store和load,不然会有拷贝问题...不知道你是不是因为需求才这样写
第39行,如果ok==false
的话,也返回了r, true
跟踪一下GetRoom
,看看是不是没有找到这个room
另外if ok == true
也可以写成if ok
:)
5 回答5.1k 阅读✓ 已解决
2 回答3k 阅读✓ 已解决
1 回答5k 阅读✓ 已解决
1 回答4.8k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
真没看出来有什么不对的地方,基本用法就是这样的。
不知道你调用AddRoom的地方是什么样的?