登录
首页 >  Golang >  Go问答

外部函数中的接收者结构

来源:stackoverflow

时间:2024-03-13 20:00:22 386浏览 收藏

哈喽!今天心血来潮给大家带来了《外部函数中的接收者结构》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我实在是看不懂这段代码

我想我理解接收器是如何工作的,但是当 /foo 被请求时,为什么该结构成为 servehttp 的接收器而从未被调用?如果这就是 http 的工作方式,这是接收器的典型使用方式吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
main go
 
import "net/http"
 
type fooHandler struct {
    Message sstring
}
 
func (f *fooHandler) ServerHTTP(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte(f.Message))
}
 
func main() {
    http.Handle("/foo", &fooHandler{Message: "Hello world"})
}

解决方案


第一:应该是ServeHTTP,而不是ServerHTTP

对于ServeHTTP方法,fooHandler是一个实现http.Handler接口的结构体。因此,您可以将 &fooHandler 传递给 http.Handle,当加载该 URL 时,将调用 fooHandlerServeHTTP 方法。

今天关于《外部函数中的接收者结构》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>