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

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

我可以不使用 make 函數(shù)創(chuàng)建頻道嗎?

我可以不使用 make 函數(shù)創(chuàng)建頻道嗎?

Go
MMMHUHU 2022-11-23 20:18:51
下面的代碼工作正常func main() {    c := make(chan string)    go subRountine(c)    fmt.Println(<-c)}func subRountine(c chan string) {    c <- "hello"}有沒(méi)有其他方法可以在沒(méi)有 make 功能的情況下創(chuàng)建頻道?像這樣,但這個(gè)示例不起作用func main() {    var c chan string    go subRountine(c)    fmt.Println(<-c)}func subRountine(c chan string) {    c <- "hello"}
查看完整描述

2 回答

?
有只小跳蛙

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

不!聲明通道與var創(chuàng)建通道不同。那么你應(yīng)該創(chuàng)建make

  var c chan string
  c = make(chan string)

不同之處在于,現(xiàn)在您可以在底層作用域中創(chuàng)建 c 并在它們之外使用它。

請(qǐng)注意,您不應(yīng)該以這種方式將冒號(hào)放在等號(hào)之前。


查看完整回答
反對(duì) 回復(fù) 2022-11-23
?
陪伴而非守候

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

長(zhǎng)話短說(shuō)

沒(méi)辦法:你必須使用make.

更多細(xì)節(jié)

var c chan string

僅僅聲明了一個(gè)通道變量,但沒(méi)有初始化通道!這是有問(wèn)題的,因?yàn)檎缯Z(yǔ)言規(guī)范所說(shuō)

未初始化通道的值為nil.

nil通道永遠(yuǎn)不會(huì)準(zhǔn)備好進(jìn)行通信。

換句話說(shuō),向nil通道發(fā)送和/或接收是阻塞的。盡管nil通道值可能很有用,但如果您想在通道上執(zhí)行通道通信(發(fā)送或接收),則必須在某個(gè)階段初始化通道。

正如 mkopriva 在他的評(píng)論中所寫(xiě),Go 只提供了一種初始化通道的方法:

可以使用內(nèi)置函數(shù)創(chuàng)建一個(gè)新的初始化通道值make,該函數(shù)將通道類型和可選容量作為參數(shù):

make(chan int, 100)


查看完整回答
反對(duì) 回復(fù) 2022-11-23
  • 2 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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