title: How to convert interface{} to bytes.Buffer
body: <p>How to convert <code>interface{}</code> to <code>bytes.Buffer</code>?</p>
  
  <p>Minimal <a href="http://play.golang.org/p/4WDoVq1EaM" rel="nofollow">example</a></p>
  
  <pre><code>package main
  
  import (
      "bytes"
      "fmt"
  )
  
  func ToJson5(any interface{}) string {
      if any == nil {
          return `''`
      }
      switch any.(type) {
      case bytes.Buffer: // return as is
          return any.(bytes.Buffer).String()
      // other types works fine
      }
      return ``
  }
  
  func main() {
      x := bytes.Buffer{}
      fmt.Println(ToJson5(x))
  }
  </code></pre>
  
  <p>The errors was:</p>
  
  <pre><code>main.go:14: cannot call pointer method on any.(bytes.Buffer)
  main.go:14: cannot take the address of any.(bytes.Buffer)
  </code></pre>
  
  <p>When changed to <code>bytes.Buffer{}</code> (that I think less correct), the error was:</p>
  
  <pre><code>main.go:13: bytes.Buffer literal (type bytes.Buffer) is not a type
  main.go:14: bytes.Buffer literal is not a type
  </code></pre>