Gitmek için oldukça yeniyim ve bu bildirim paketi ile oynuyordum .
İlk başta şöyle görünüyordu kodu vardı:
func doit(w http.ResponseWriter, r *http.Request) {
notify.Post("my_event", "Hello World!")
fmt.Fprint(w, "+OK")
}
Newline eklemek istedim Hello World!
ama doit
yukarıdaki fonksiyonda değil , çünkü bu oldukça önemsiz olurdu, ancak handler
daha sonra aşağıdaki gibi:
func handler(w http.ResponseWriter, r *http.Request) {
myEventChan := make(chan interface{})
notify.Start("my_event", myEventChan)
data := <-myEventChan
fmt.Fprint(w, data + "\n")
}
Sonra go run
:
$ go run lp.go
# command-line-arguments
./lp.go:15: invalid operation: data + "\n" (mismatched types interface {} and string)
Biraz Googling'den sonra bu soruyu SO'da buldum .
Sonra kodumu güncelledim:
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)
}
Yapmam gereken bu muydu? Benim derleyici hataları gitti bu yüzden bu oldukça iyi sanırım? Bu verimli mi? Farklı mı yapmalısın?