From a8b0538b1b502656e8aaaa9770c8bdb8c7ae60d7 Mon Sep 17 00:00:00 2001 From: "Stephen M. McQuay" Date: Mon, 3 Sep 2012 08:38:02 -0600 Subject: [PATCH] example of using range/close/for with channels --- concurrency/range-close/go.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 concurrency/range-close/go.go diff --git a/concurrency/range-close/go.go b/concurrency/range-close/go.go new file mode 100644 index 0000000..5241e23 --- /dev/null +++ b/concurrency/range-close/go.go @@ -0,0 +1,22 @@ +package main + +import ( + "fmt" +) + +func fibonacci(n int, c chan uint64) { + var x, y uint64 = 0, 1 + for i := 0; i < n; i++ { + c <- x + x, y = y, x+y + } + close(c) +} + +func main() { + fc := make(chan uint64, 80) + go fibonacci(cap(fc), fc) + for i := range fc { + fmt.Println(i) + } +}