title: Explanation of checking if value implements interface
body: <p>I've read "Effective Go" and other Q&amp;As like this: <a href="https://stackoverflow.com/questions/17994519/golang-interface-compliance-compile-type-check">golang interface compliance compile type check</a> , but nonetheless I can't understand properly how to use this technique.</p>
  
  <p>Please, see example:</p>
  
  <pre><code>type Somether interface {
      Method() bool
  }
  
  type MyType string
  
  func (mt MyType) Method2() bool {
      return true
  }
  
  func main() {
      val := MyType("hello")
  
      //here I want to get bool if my value implements Somether
      _, ok := val.(Somether)
      //but val must be interface, hm..what if I want explicit type?
  
      //yes, here is another method:
      var _ Iface = (*MyType)(nil)
      //but it throws compile error
      //it would be great if someone explain the notation above, looks weird
  }
  </code></pre>
  
  <p>Is there any simple ways (eg without using reflection) check value if it implements an interface?</p>