我有一個chan string緩沖的,我一直用隨機字符串填充它,直到一段時間。持續時間過去或直到它變滿。我的問題是,考慮到它是一次性任務還是有更方便的方法,我應該使用自動收報機嗎?這是我目前的做法package mainimport ( "fmt" "time")func main() { res := fillChan(time.Duration(1*time.Nanosecond), 100000) fmt.Println(len(res))}func fillChan(maxDuration time.Duration, chanSize int) chan string { c := make(chan string, chanSize) ticker := time.NewTicker(maxDuration) for { select { case <-ticker.C: ticker.Stop() return c case c <- "Random message": default: return c } }}
1 回答

白衣非少年
TA貢獻1155條經驗 獲得超0個贊
我不是圍棋專家(事實上,我從未使用過它),但文檔建議Timer,或After用于單個事件。
select {
case <-time.After(1*time.Nanosecond):
return c
case c <- "Random message":
default:
return c
}
- 1 回答
- 0 關注
- 191 瀏覽
添加回答
舉報
0/150
提交
取消