我很新,我正在玩这个通知包。
起初我的代码看起来像这样:
func doit(w http.ResponseWriter, r *http.Request) {
notify.Post("my_event", "Hello World!")
fmt.Fprint(w, "+OK")
}
我想在上面的函数中添加换行符,Hello World!
但不是在上面的函数中doit
,因为这很简单,但是在后面的函数中handler
如下所示:
func handler(w http.ResponseWriter, r *http.Request) {
myEventChan := make(chan interface{})
notify.Start("my_event", myEventChan)
data := <-myEventChan
fmt.Fprint(w, data + "\n")
}
之后go run
:
$ go run lp.go
# command-line-arguments
./lp.go:15: invalid operation: data + "\n" (mismatched types interface {} and string)
经过一番谷歌搜索后,我在 SO 上找到了这个问题。
然后我将我的代码更新为:
func handler(w http.ResponseWriter, r *http.Request) {
myEventChan := make(chan interface{})
notify.Start("my_event", myEventChan)
data := <-myEventChan
s:= data.(string) + "\n"
fmt.Fprint(w, s)
}
这是我应该做的吗?我的编译器错误消失了,所以我想这很好吗?这有效率吗?你应该做不同的事情吗?