title: What is an interface assertion?
body: <p>I have just came across this piece of code on <a href="https://tendermint.com/blog/abstracting-the-logger-interface-in-go?utm_source=golangweekly&amp;utm_medium=email" rel="noreferrer">this blog post</a></p>
  
  <pre><code>type Logger interface {
      Debug(msg string, keyvals ...interface{}) error
      Info(msg string, keyvals ...interface{}) error
      Error(msg string, keyvals ...interface{}) error
  }
  
  type tmLogger struct {
      srcLogger kitlog.Logger
  }
  
  // Interface assertions
  var _ Logger = (*tmLogger)(nil) // What is this?
  
  // ... interface definition ...
  </code></pre>
  
  <p>What is this "interface assertion"?</p>