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