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