title: select with single case blocks, adding default: unblocks
body: <p>While testing some code with something like this:</p>
  
  <pre class="lang-golang prettyprint-override"><code>// ch := make(chan error)
  
  for {
      select {
        case &lt;- ch:
             println("here")
      }
  }
  </code></pre>
  
  <p>I notice that if I don't add a <code>default</code> the code blocks:</p>
  
  <pre class="lang-golang prettyprint-override"><code>for {
      select {
         case &lt;- ch:
              println("here")
         default:
      }
  }
  </code></pre>
  
  <p>In case that the block is required, could't be better then just use <code>range</code>, something like:</p>
  
  <pre class="lang-golang prettyprint-override"><code>for {
      for _ = range &lt;- ch {
          println("here")
      }
  }
  </code></pre>
  
  <p>Or is there any difference/advantage of using <code>select</code> over <code>range</code> for this case ?</p>