在go中,有一个"前缀"你可以把功能。这有用吗?有什么用例?
示例:
type a struct {
Thing string
}
func (something a) b() {
fmt.Println(something.Thing)
}
答案 0 :(得分:4)
编程就是沟通:你正在与机器沟通它应该做什么,并与其他程序员沟通(包括你未来的自我)。许多更高级别的编程结构用于使代码更具表现力 - 也就是说,更明确地说明程序员的意图。
Go的函数接收器就像更传统的面向对象语言中的“自我”对象。这是一种将一组函数组合在一起并称“这些方法主要用于操作此类对象”的方法,而不仅仅是碰巧采用该类型参数的通用实用方法。换句话说,它们用于描述抽象对象的行为,其状态由结构描述。
答案 1 :(得分:1)
这意味着函数附加到结构中,在这种情况下,您可以在其他地方执行a.b()
。