为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕的地10843 2021-11-15 15:19:21
在 Go 中,是否有比以下更惯用的方法将数组/切片的所有元素添加到通道中?ch := make(chan string)values := []string{"lol", "cat", "lolcat"}go func() {    for _, v := range values {        ch <- v    }}()我正在寻找类似ch <- values...但被编译器拒绝的东西。
查看完整描述

2 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

您可以声明字符串数组的 chan ,除非您绝对想保留字符串的 chan :


package main


import "fmt"


func main() {

    ch := make(chan []string)

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


    go func() {

            ch <- values

    }()


    fmt.Printf("Values : %+v\n", <-ch)

}


查看完整回答
反对 回复 2021-11-15
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

阿for/range循环是发送所有切片到的信道的各元素的惯用的方法:


for _, v := range values {

    ch <- v

}

for如问题所示,没有必要在 goroutine 中运行循环。


查看完整回答
反对 回复 2021-11-15
  • 2 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信