将切片的所有项目添加到通道中

在 Go 中,是否有比以下更惯用的方法将数组/切片的所有元素添加到通道中?


ch := make(chan string)

values := []string{"lol", "cat", "lolcat"}


go func() {

    for _, v := range values {

        ch <- v

    }

}()

我正在寻找类似ch <- values...但被编译器拒绝的东西。


慕的地10843
浏览 154回答 2
2回答

婷婷同学_

您可以声明字符串数组的 chan ,除非您绝对想保留字符串的 chan :package mainimport "fmt"func main() {&nbsp; &nbsp; ch := make(chan []string)&nbsp; &nbsp; values := []string{"lol", "cat", "lolcat"}&nbsp; &nbsp; go func() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ch <- values&nbsp; &nbsp; }()&nbsp; &nbsp; fmt.Printf("Values : %+v\n", <-ch)}

潇潇雨雨

阿for/range循环是发送所有切片到的信道的各元素的惯用的方法:for _, v := range values {&nbsp; &nbsp; ch <- v}for如问题所示,没有必要在 goroutine 中运行循环。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go