Goã§ã¤ãã¬ã¼ã¿
goroutineã¨channelã¨rangeã¤ããã°å·§ãäºãã£ã¦ããã¾ããã
package main import ( "log"; "time"; ) func FibIter(n int) chan uint64 { ch := make(chan uint64); go func() { var a, b uint64 = 0, 1; for i := 0; i < n; i++ { ch <- a; a, b = b, a + b; } close(ch); }(); return ch; } func main() { for i := range FibIter(50) { log.Stdout(i); time.Sleep(1e8); } }