问题在于go func。错误消息是go 中的表达式必须是函数调用 listener, _ := gostream.Listen(host1, p2phttp.DefaultP2PProtocol) defer listener.Close() go func() { http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hi!")) }) server := &http.Server{} server.Serve(listener) }错误是命令行参数.\sever.go:18:5: go 中的表达式必须是函数调用
2 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
如果您决定创建一个匿名函数,那么
listener, _ := gostream.Listen(host1, p2phttp.DefaultP2PProtocol)
defer listener.Close()
go func() {
http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hi!"))
})
server := &http.Server{}
server.Serve(listener)
}()
命名函数:
listener, _ := gostream.Listen(host1, p2phttp.DefaultP2PProtocol)
defer listener.Close()
go Greet()
func Greet() {
http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hi!"))
})
server := &http.Server{}
server.Serve(listener)
}
慕工程0101907
TA贡献1887条经验 获得超5个赞
您忘记调用(调用)匿名函数。因此,错误:go 中的表达式必须是函数调用。
go func() { fmt.Prinln("Im an IIFE") }() // note the parenthesis
这称为立即调用函数表达式 (IIFE)。
- 2 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消