[問題] Golang iterate callback

看板Programming作者 (Cary)時間9年前 (2014/10/08 18:57), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/3 (看更多)
目前在練習用 golang 實作一些東西 裏面寫到可以讓使用者自定一個 combiner 把 callbacks 結果做處理 一開始我先把所有 callback 都跑一遍,然後把所有結果用 slice 包起來傳給 combiner http://ideone.com/dRYZDb 但是我希望在 combiner 裏每次拿下一個結果的時候才計算(呼叫 callback) C++ 可以自定 iterator, 在 golang 想到用 channel 達到類似功能的做法 http://ideone.com/YwgBm4 這樣的界面對使用者最方便,combine 裏可以直接 iterate result 但是會有兩個問題: 1. 每次會先做完下一個, send to channel 時才卡住,我希望的是如果沒有讀就不要做 2. combiner 中途離開時沒有辦法很好的關閉 goroutine... 雖然可以直接關掉 channel 然後做 recover,但是感覺很不好XD 目前我想到的方法是把 callback wrap 起來給 combiner 呼叫 http://ideone.com/tQ7mbu 不過這樣 combiner 裏需要使用者自己呼叫才能得到結果 不知道有沒有更好的處理方式? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.244.41 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1412765820.A.B8B.html

10/10 18:01, , 1F
是沒有人在用 go,還是我的問題太蠢orz
10/10 18:01, 1F
文章代碼(AID): #1KDHXykB (Programming)
文章代碼(AID): #1KDHXykB (Programming)