在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/GO/ Golang的sync.Map中存入struct,取出來是空數(shù)據(jù)

Golang的sync.Map中存入struct,取出來是空數(shù)據(jù)

圖片描述

var Rooms sync.Map

type Room struct {
    RoomID string
    Time int64 "創(chuàng)建時(shí)間"
    Player1 int "P1玩家ID"
    Player2 int
    Player1Accept bool "P1玩家是否接受游戲"
    Player2Accept bool
}

如圖所示,存入Rooms這個(gè)map的Player1和Player2是1和2,但是取出來的時(shí)候是0,這是什么原因呢?

回答
編輯回答
歆久

寫法有問題,GetRoom返回的Room對象即使Load失敗也會返回一個(gè)未初始化的Room。還有就是通常使用Room指針去store和load,不然會有拷貝問題...不知道你是不是因?yàn)樾枨蟛胚@樣寫

2017年7月12日 21:57
編輯回答
傲嬌范

真沒看出來有什么不對的地方,基本用法就是這樣的。

不知道你調(diào)用AddRoom的地方是什么樣的?

2018年5月25日 13:07
編輯回答
局外人

第39行,如果ok==false的話,也返回了r, true
跟蹤一下GetRoom,看看是不是沒有找到這個(gè)room

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

2018年8月6日 12:08