added iterator

This commit is contained in:
Jian Han 2017-12-03 20:23:59 +10:00
parent 5d35abc39d
commit f3daa894af

View File

@ -0,0 +1,24 @@
package main
import "fmt"
// Generator func which produces data which might be computationally expensive.
func fib(n int) chan int {
c := make(chan int)
go func() {
for i, j := 0, 1; i < n; i, j = i+j, i {
c <- i
}
close(c)
}()
return c
}
func main() {
// fib returns the fibonacci numbers lesser than 1000
for i := range fib(1000) {
// Consumer which consumes the data produced by the generator, which further does some extra computations
v := i * i
fmt.Println(v)
}
}