第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

無緩沖通道上的循環(huán)范圍

無緩沖通道上的循環(huán)范圍

Go
猛跑小豬 2022-06-01 16:16:17
我是 golang 的新手,正在學(xué)習(xí) gotour。我有以下代碼可以完美運(yùn)行。package mainimport (    "fmt")func fibonacci(n int, c chan int) {    x, y := 0, 1    for i := 0; i < n; i++ {        c <- x        x, y = y, x+y    }    close(c)}func main() {    c := make(chan int, 5)//  c := make(chan int)     //doesn't work, why ?    go fibonacci(cap(c), c)    for i := range c {        fmt.Println(i)    }}但是當(dāng)我使用無緩沖通道而不是緩沖通道時(shí),我沒有得到任何輸出,為什么會這樣?
查看完整描述

2 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

當(dāng)您將 cap(c) 傳遞給斐波那契函數(shù)時(shí),傳遞的是什么值?在緩沖通道上n == 5, 在無緩沖通道上n == 0

和你的 for 循環(huán)

for i := 0; i < 0; i++ {

實(shí)際上,這是處理這種情況的一種非常糟糕的方式。您要求通道數(shù)等于迭代次數(shù)。

我不建議以這種方式使用通道,將通道視為能夠并發(fā)操作,這不是您在這種情況下想要做的事情!

如果您將數(shù)字單獨(dú)傳遞給例程的數(shù)量,那么無緩沖通道將按預(yù)期工作:

https://play.golang.org/p/G1b2vjTUCsV


查看完整回答
反對 回復(fù) 2022-06-01
?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

cap(c)如果通道未緩沖,則為零。查看修改后的程序


查看完整回答
反對 回復(fù) 2022-06-01
  • 2 回答
  • 0 關(guān)注
  • 121 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號