package main import "fmt" func fibonacii(c, quit chan int) { x, y := 1, 1 for { select { case c <- x: temp := x x = y y = temp + y case <-quit: fmt.Println("quit") return } } } func main() { c := make(chan int) quit := make(chan int) go func() { for i := 0; i < 30; i++ { fmt.Println(<-c) } quit <- 0 }() fibonacii(c, quit) }