Go中的方法前缀

时间:2016-08-23 23:27:02

标签: go

在go中,有一个"前缀"你可以把功能。这有用吗?有什么用例?

示例:

type a struct {
    Thing string
}

func (something a) b() {
    fmt.Println(something.Thing)
}

2 个答案:

答案 0 :(得分:4)

编程就是沟通:你正在与机器沟通它应该做什么,并与其他程序员沟通(包括你未来的自我)。许多更高级别的编程结构用于使代码更具表现力 - 也就是说,更明确地说明程序员的意图。

Go的函数接收器就像更传统的面向对象语言中的“自我”对象。这是一种将一组函数组合在一起并称“这些方法主要用于操作此类对象”的方法,而不仅仅是碰巧采用该类型参数的通用实用方法。换句话说,它们用于描述抽象对象的行为,其状态由结构描述。

答案 1 :(得分:1)

这意味着函数附加到结构中,在这种情况下,您可以在其他地方执行a.b()