func genInt(start int, stop int) chan int { c := make(chan int); go func() { for i := start; i < stop; i++ { c <- i; } close(c); }(); return c; }
func main() { c := genInt(1, 20); for { i := <-c; if closed(c) { break; } fmt.Printf("%d\n", i); } // もしくわ for i := range genInt(1, 20) { fmt.Printf("%d\n", i); } }