很抱歉,我无法在问题标题中更具体地说明问题,但我在阅读大约Go个代码时遇到了以下形式的函数声明:
func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
...
}
从https://github.com/mattermost/platform/blob/master/api/context.go
func (s *GracefulServer) BlockingClose() bool {
...
}
从https://github.com/braintree/manners/blob/master/server.go
括号内的(h handler)
和(s *GracefulServer)
是什么意思?考虑到括号之间的含义,整个函数声明意味着什么?
编辑
这不是Whats the difference of functions and methods in Go?的翻版:我问这个问题是因为我不知道函数名前括号中的东西是什么,不是因为我想知道函数和方法之间的区别是什么...如果我知道这个声明是一种方法,我一开始就不会有这个问题.如果有一天有人和我有同样的怀疑,我不相信她会go 寻找"golang方法",因为她不知道这是事实.这就像是想知道字母"sigma"在一个数学表达式之前是什么意思(不知道它的意思是求和),有人说这是求和和和其他东西之间区别的重复.
此外,这个问题的简短答案("它是一个接收器")并没有回答"函数和方法之间的区别是什么".