package main import "fmt" func main() { ch := make(chan int) q := make(chan int) go func(ch, q chan int) { for i := 0; i < 10; i++ { num := <-ch fmt.Println(num) } q <- 1 }(ch, q) fibonacci := func(ch, q chan int) { x, y := 0, 1 for { select { case ch <- x: // 写入 x, y = y, x+y break // 你觉得是否会影响 for 语句的循环? case <-q: // 读取 fmt.Println("quit") return } } } fibonacci(ch, q) }