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

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

迭代通道發(fā)送的所有值,直到它在 Go 中關(guān)閉

迭代通道發(fā)送的所有值,直到它在 Go 中關(guān)閉

Go
躍然一笑 2021-09-10 20:59:37
我試圖了解 goroutine 和通道是如何工作的。我有一個循環(huán)向通道發(fā)送值,我想遍歷通道發(fā)送的所有值,直到它關(guān)閉。我在這里寫了一個簡單的例子:package mainimport (    "fmt")func pinger(c chan string) {    for i := 0; i < 3; i++ {        c <- "ping"    }    close(c)}func main() {    var c chan string = make(chan string)    go pinger(c)    opened := true    var msg string    for opened {        msg, opened = <-c        fmt.Println(msg)    }}這給出了預(yù)期的結(jié)果,但我想知道是否有更短的方法來做到這一點(diǎn)。非常感謝您的幫助
查看完整描述

1 回答

?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個贊

您可以range在頻道上使用。循環(huán)將繼續(xù),直到通道根據(jù)需要關(guān)閉:


package main


import (

    "fmt"

)


func pinger(c chan string) {

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

        c <- "ping"

    }

    close(c)

}


func main() {

    var c chan string = make(chan string)


    go pinger(c)


    for msg := range c {

        fmt.Println(msg)

    }

}


查看完整回答
反對 回復(fù) 2021-09-10
  • 1 回答
  • 0 關(guān)注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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