title: Range for loop over an unBuffered Channel
body: <p>I'm new to golang and going over the <a href="https://tour.golang.org/concurrency/4" rel="nofollow noreferrer">gotour</a>. I have following code which works perfectly as it should.</p>
  
  <pre><code>package main
  
  import (
      "fmt"
  )
  
  func fibonacci(n int, c chan int) {
      x, y := 0, 1
      for i := 0; i &lt; n; i++ {
          c &lt;- x
          x, y = y, x+y
      }
      close(c)
  }
  
  func main() {
      c := make(chan int, 5)
  //  c := make(chan int)     //doesn't work, why ?
      go fibonacci(cap(c), c)
      for i := range c {
          fmt.Println(i)
      }
  }
  </code></pre>
  
  <p>But when I use an unbuffered channel instead of a buffered one, I don't get any output, why's that so ?</p>