나는 아주 새로운 것이었고 나는이 알림 패키지를 가지고 놀고있었습니다 .
처음에는 다음과 같은 코드가있었습니다.
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)
}
이것이 내가해야했던 일입니까? 컴파일러 오류가 사라 졌으므로 꽤 좋을 것 같습니다. 이것이 효율적입니까? 다르게해야합니까?