在 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)
}
潇潇雨雨
TA贡献1833条经验 获得超4个赞
阿for/range循环是发送所有切片到的信道的各元素的惯用的方法:
for _, v := range values {
ch <- v
}
for如问题所示,没有必要在 goroutine 中运行循环。
- 2 回答
- 0 关注
- 153 浏览
添加回答
举报
0/150
提交
取消