在下面的代碼中嘗試將值設(shè)置為map( countedData) 時(shí),我收到一個(gè)錯(cuò)誤消息,指出assignment to entry in nil map.func receiveWork(out <-chan Work) map[string][]ChartElement { var countedData map[string][]ChartElement for el := range out { countedData[el.Name] = el.Data } fmt.Println("This is never executed !!!") return countedData}Println 不執(zhí)行(因?yàn)樵诖酥板e(cuò)誤發(fā)生在留置權(quán)上)。有一些 goroutines 將數(shù)據(jù)發(fā)送到通道,receiveWork方法應(yīng)該制作這樣的地圖:map => "typeOne" => [ ChartElement, ChartElement, ChartElement, ], "typeTwo" => [ ChartElement, ChartElement, ChartElement, ]請(qǐng)幫我修復(fù)錯(cuò)誤。
2 回答

神不在的星期二
TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用內(nèi)置函數(shù) make 創(chuàng)建一個(gè)新的空映射值,該函數(shù)將映射類型和可選的容量提示作為參數(shù):
make(map[string]int) make(map[string]int, 100)初始容量不限制其大小:地圖增長以容納存儲(chǔ)在其中的項(xiàng)目數(shù)量,除了 nil 地圖。一個(gè) nil 映射相當(dāng)于一個(gè)空映射,只是不能添加任何元素。
你寫:
var countedData map[string][]ChartElement
相反,要初始化地圖,請(qǐng)寫入,
countedData := make(map[string][]ChartElement)

30秒到達(dá)戰(zhàn)場(chǎng)
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
另一種選擇是使用復(fù)合文字:
countedData := map[string][]ChartElement{}
https://golang.org/ref/spec#Composite_literals
- 2 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報(bào)
0/150
提交
取消