我是 Golang 的新手 - 在嘗試將以下內(nèi)容重寫為單線程實(shí)現(xiàn)時(shí)。.....run := func(handler func(chan<- modify), threads int) <-chan modify { result := make(chan modify) go func() { var wg sync.WaitGroup for i := 0; i < threads; i++ { wg.Add(1) go func() { defer wg.Done() handler(result) }() } wg.Wait() close(result) }() return result}modifyAgg := run(func(result chan<- modify) {aggre := run(func(result chan<- modify) { u.addAgg(slices, result) // returns result channel}, u.threads.GrpTxns).... 在上面的代碼中,變量 addAgg 的類型是 chan<- modify。以下不是 - 在遍歷變量 aggre 時(shí)出現(xiàn)錯(cuò)誤“無法遍及 addAgg(類型 func())”aggre := func() { result:= make(chan modify) defer close(result) u.addAgg(slices, result) // returns result channel}如何更改第二個(gè)實(shí)現(xiàn)以模仿第一個(gè)?謝謝 !
1 回答

斯蒂芬大帝
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
我能夠在單線程中實(shí)現(xiàn)這個(gè)......
aggre := func() <-chan modify{
result:= make(chan modify, 50) // make it non blocking
u.addAgg(slices, result)
defer close(result)
return result
}()
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)
0/150
提交
取消