(并发编程新手) 怀疑为什么goroutine的执行流程在这里有点怪异?
开始使用golang进行goroutines和channel操作。
func main() {
// Set up the pipeline.
c := gen(2,3)
out := sq(c)
// Consume the output.
fmt.Println(<-out) // 4
fmt.Println(<-out) // 9
}
func sq(in <-chan int) <-chan int {
out := make(chan int)
go func() {
for n := range in {
out <- n * n
}
close(out)
}()
return out
}
func gen(nums ...int) <-chan int {
out := make(chan int)
go func() {
for _,n := range nums {
out <- n
}
close(out)
}()
return out
}