私は行くのはかなり新しいです、そして私はこの通知パッケージで遊んでいました。
最初は次のようなコードがありました。
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)
}
これは私がすることになっていたことですか?コンパイラのエラーがなくなったので、それでかなり良いと思いますか?これは効率的ですか?別の方法で行う必要がありますか?