title: golang recover return value syntax
body: <p>I'm trying to understand how to recover from panic situation. Normally, something like this will do:</p>
  <pre><code> if r := recover(); r != nil {
      fmt.Println(&quot;Recovered in f&quot;, r)
   }
  </code></pre>
  <p>I can understand those much. But I've seen code snippet like the following:</p>
  <pre><code> if r, ok := recover().(error); ok {
      fmt.Println(&quot;Recovered in f&quot;, r)
   }
  </code></pre>
  <p>What's the <code>.(error)</code> part doing?</p>