我正在嘗試將一個(gè)通道作為成員包含到結(jié)構(gòu)中。當(dāng)啟動(dòng)器通過通道將結(jié)構(gòu)體的實(shí)例傳遞給不同的 goroutine 時(shí)(將同時(shí)有多個(gè)啟動(dòng)器),該結(jié)構(gòu)體的實(shí)例將被逐步處理。通道成員將用作回調(diào),將每個(gè)步驟的結(jié)果返回給發(fā)起者。那么,通過其他通道將通道作為數(shù)據(jù)傳遞是一個(gè)好習(xí)慣嗎?我應(yīng)該使用通道的指針嗎?還有其他款式推薦嗎?=================一些額外的想法==============與使用全局sync.Map將啟動(dòng)器映射到每個(gè)要查找的goroutine的回調(diào)通道相比,我實(shí)際上應(yīng)該通過通道發(fā)送回調(diào)通道嗎?
1 回答

慕尼黑的夜晚無繁華
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
這不是一個(gè)壞習(xí)慣。將一個(gè)通道傳遞到另一個(gè)通道并使用它來收集結(jié)果是完全可以的。
請(qǐng)注意,您所描述的并不完全是回調(diào),因?yàn)?go 例程不會(huì)調(diào)用任何內(nèi)容。它只是將數(shù)據(jù)寫入通過通道傳輸?shù)耐ǖ乐小?/p>
如果您在通道中傳遞了一個(gè)函數(shù)并且 go 例程將調(diào)用它,那么您將有一個(gè)回調(diào)。
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報(bào)
0/150
提交
取消