小编mag*_*het的帖子

将切片传递到通道中

我试图将切片的结果传递给通道.这是明显破碎的版本.我已经尝试了几种方法,但似乎效果不佳.我正在寻找一种解决这个问题的惯用方法.

func gen() <-chan []int {
    c := make(chan []int)

    go func(c chan []int) {
        defer close(c)
        s := []int{0, 1, 2, 3}

        for i := 0; i < len(s); i++ {
            s[i] = -1
            c <- s
        }
    }(c)

    return c

}

func main() {
    for s := range gen() {
        fmt.Println(s)
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

[-1 -1 2 3]
[-1 -1 2 3]
[-1 -1 -1 -1]
[-1 -1 -1 -1]
Run Code Online (Sandbox Code Playgroud)

go

7
推荐指数
1
解决办法
6945
查看次数

标签 统计

go ×1