在golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《服务器是否需要是一个指针》,聊聊,希望可以
在golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《服务器是否需要是一个指针》,聊聊,希望可以帮助到正在努力赚钱的你。
问题内容根据 Http#server.listenandserve 文档
func (*server) listenandserve
将服务器作为指针
根据[https://Golang.org/pkg/net/http/],似乎服务器应该创建为指针
server := &http.server{
addr: ":8080",
handler: nil,
tlsconfig: nil,
.....
}
但是,这工作得很好。我在这里缺少什么?
server := http.Server{
Addr: ":8080",
Handler: nil,
......
}
if err := server.ListenAndServe(); err!=nil{
log.Fatal("oh Dear!")
}
请参阅“Go Syntax of calling a function with pointer receiver”,以及
规格:“Method Set”
对应指针类型*T
的方法集是所有接收者为*T
或T
的方法集(即还包含T
的方法集)。
因此 func (*Server) ListenAndServe
适用于 server
和 *Server
。
这两个示例都使用 http.Server
的地址。第一个示例显式采用 http.Server
的地址。
在第二个示例中,调用 server.ListenAndServe()
是 (&server).ListenAndServe()
的简写。
这里是 relevant text from the specification 的简写:
应用短句柄是因为变量 server
为 addressable,并且 &server
的 Method Set 包含 ListenAndServe()
。
以上就是《服务器是否需要是一个指针》的详细内容,更多关于的资料请关注编程网公众号!
--结束END--
本文标题: 服务器是否需要是一个指针
本文链接: https://lsjlt.com/news/596516.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0