title: cannot convert data (type interface {}) to type string: need type assertion
body: <p>I am pretty new to go and I was playing with this <a href="https://github.com/bitly/go-notify/blob/master/notify.go" rel="noreferrer">notify</a> package.</p>
  
  <p>At first I had code that looked like this:</p>
  
  <pre><code>func doit(w http.ResponseWriter, r *http.Request) {
      notify.Post("my_event", "Hello World!")
      fmt.Fprint(w, "+OK")
  }
  </code></pre>
  
  <p>I wanted to append newline to <code>Hello World!</code> but not in the function <code>doit</code> above, because that would be pretty trivial, but in the <code>handler</code> afterwards like this below:</p>
  
  <pre><code>func handler(w http.ResponseWriter, r *http.Request) {
      myEventChan := make(chan interface{})
      notify.Start("my_event", myEventChan)
      data := &lt;-myEventChan
      fmt.Fprint(w, data + "\n")
  }
  </code></pre>
  
  <p>After <code>go run</code>:</p>
  
  <pre><code>$ go run lp.go 
  # command-line-arguments
  ./lp.go:15: invalid operation: data + "\n" (mismatched types interface {} and string)
  </code></pre>
  
  <p>After a little bit of Googling I found <a href="https://stackoverflow.com/a/4801045/11926">this question on SO</a>.</p>
  
  <p>Then I updated my code to:</p>
  
  <pre><code>func handler(w http.ResponseWriter, r *http.Request) {
      myEventChan := make(chan interface{})
      notify.Start("my_event", myEventChan)
      data := &lt;-myEventChan
      s:= data.(string) + "\n"
      fmt.Fprint(w, s)
  }
  </code></pre>
  
  <p>Is this what I was supposed to do? My compiler errors are gone so I guess that's pretty good? Is this efficient? Should you do it differently?</p>