繁体   English   中英

声明Go服务器的ServeHTTP方法

[英]Declaring ServeHTTP method of go server

我正在遵循在此处编写Go服务器的指南。

我不明白以下内容:

func (*myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
  //    ^^^^^ What does this do?

它看起来不像返回类型。 在Go中,我的理解是返回类型遵循函数的参数。 像此函数一样返回整数:

func hello(s String) int {}

那么,ServeHTTP声明中的(*myHandler)有什么作用?

在下面的方法声明中

func (*myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {

myHandler是该方法的接收者。 在Go文档中有关方法定义的内容中对此进行了说明:

方法是具有接收器的功能。 方法声明将标识符,方法名称绑定到方法,并将该方法与接收者的基本类型相关联。

接收器是通过方法名称前面的附加参数部分指定的。 该参数部分必须声明一个非可变参数,即接收器。 其类型必须为T或* T形式(可能使用括号),其中T为类型名称。 用T表示的类型称为接收方基本类型; 它不能是指针或接口类型,并且必须在与方法相同的程序包中声明。 据说该方法绑定到基本类型,并且方法名称仅在类型T或* T的选择器中可见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM