GoLang,MethodName前面括号中的内容是什么?
MethodName前面的括号中的内容是什么?我是说这个(t*t) 这来自这里: 我试图理解golang rpc,并看到了这个方法定义 谢谢 方法是带有接收器的函数。方法声明绑定 标识符(方法名称)与方法关联,并将该方法关联 与接收器的基本类型 给定类型点,声明 将具有接收器类型*点的方法长度和比例绑定到 基本类型 这是方法接收器 方法是带有接收器的函数。方法声明绑定 标识符(方法名称)与方法关联,并将该方法关联 与接收器的基本类型 给定类型点,声明 将具有接收器类型*点的方法长度和比例绑定到 基本类型GoLang,MethodName前面括号中的内容是什么?,go,Go,MethodName前面的括号中的内容是什么?我是说这个(t*t) 这来自这里: 我试图理解golang rpc,并看到了这个方法定义 谢谢 方法是带有接收器的函数。方法声明绑定 标识符(方法名称)与方法关联,并将该方法关联 与接收器的基本类型 给定类型点,声明 将具有接收器类型*点的方法长度和比例绑定到 基本类型 这是方法接收器 方法是带有接收器的函数。方法声明绑定 标识符(方法名称)与方法关联,并将该方法关联 与接收器的基本类型 给定类型点,声明 将具有接收器类型*点的方法长度和比例
这是方法接收者。@peterSO的回答完全正确,但这也是Go语法的一个非常基本的部分。如果您不熟悉它,您应该花几分钟时间在tour.golang.org上完成教程。Go做的很多事情与其他语言非常不同(有时根本不同),因此,根据以前的经验,尝试凭直觉判断发生了什么是很困难的。例如,术语
MethodName
可能会让您认为T
是一个类,T
是一个对象。但在围棋中,这不是正确的思考方法,如果你这样做,你会很快迷失方向。@peterSO的回答完全正确,但这也是围棋语法的一个非常基本的部分。如果您不熟悉它,您应该花几分钟时间在tour.golang.org上完成教程。Go做的很多事情与其他语言非常不同(有时根本不同),因此,根据以前的经验,尝试凭直觉判断发生了什么是很困难的。例如,术语MethodName
可能会让您认为T
是一个类,T
是一个对象。但在Go中,这不是正确的思考方式,如果这样做,您可能会很快迷失方向。从规范中添加另一句话可能有助于读者更好地理解正在发生的事情:“据说该方法绑定到其接收器基类型T,并且该方法名仅在类型T或*T的选择器中可见。”从规范中添加另一句话可能有助于读者更好地理解正在发生的事情:“该方法被称为绑定到其接收器基类型T,并且该方法名称仅在类型T或*T的选择器中可见。”
func (t *T) MethodName(argType T1, replyType *T2) error
func (p *Point) Length() float64 {
return math.Sqrt(p.x * p.x + p.y * p.y)
}
func (p *Point) Scale(factor float64) {
p.x *= factor
p.y *= factor
}