我很新,我在這個網站上搜索了這個麻煩,並且找到了回答的問題,但是無法對我的案例實現這些答案。我有一個代碼:轉到:轉入錄入零地圖
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
也不執行(因爲測試恐慌在這裏)。我明白,麻煩在於將數據增加到結構中。
有一些夠程,所發送的數據通道,receiveWork
方法rgabs這一切,應該做一個地圖是這樣的:
map =>
"typeOne" =>
[
ChartElement,
ChartElement,
ChartElement,
],
"typeTwo" =>
[
ChartElement,
ChartElement,
ChartElement,
]
如何實現這種插入以適當的方式?
看起來你的渠道傳遞到'receiveWork'永遠不會關閉。您需要確保它關閉以便for循環結束。 – asadmshah
最後,在主要功能中,當所有goroutines完成工作,寫入out通道完成。 – Altenrion