在Go中,是否有比以下方法更惯用的方式将数组/slice 的所有元素添加到 channel 中?

ch := make(chan string)
values := []string {"lol", "cat", "lolcat"}

go func() {
    for _,v := range values {
        ch <- v
    }
}()

我正在寻找类似ch <- values...的东西(编译器拒绝了它)

最佳答案

您可以声明字符串数组的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)
}

10-06 10:25