![微信图片_20210917111826.png](https://static.studygolang.com/210917/8be436ea01cc0e6e617c806996d96305.png)
求大佬解释为什么无法执行啊
这个是跟无缓冲通道有关系的。在无缓冲通道中,是不能自己生产,自己消费的。因为在无缓冲通道中,有一个生产者发送消息,则需要找到一个消费者消费,这样才能可以。可以将通道更改成缓冲通道就可以了。
#6
更多评论
看看这样能不能实现你的想法,这是单向通道的东西
```go
func test1(ch chan<- int) {
for i := 1; i <= 5; i++ {
ch <- i
}
close(ch)
}
func test2(ch chan<- int, ch1 <-chan int) {
for v := range ch1 {
ch <- v
}
close(ch)
}
func test3(ch <-chan int) {
for v := range ch {
fmt.Println(v)
}
}
func main() {
ch1 := make(chan int)
ch2 := make(chan int)
go test1(ch1)
go test2(ch2, ch1)
test3(ch2)
}
```
#1