我正在尝试开始使用Go,并且文档非常好。我在文档中没有找到的是函数和方法之间的区别。据我目前的了解:函数是“全局”的,这意味着我不必导入包即可使用函数,它们始终存在。方法绑定到包。这样对吗?
3 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
据我目前的了解:函数是“全局”的,这意味着我不必导入包即可使用函数,它们始终存在。方法绑定到包。这样对吗?
不,那是不正确的。内置软件包中只有几个功能始终可用。其他所有内容都需要导入。
术语“方法”是面向对象的编程。在OOP语言中(例如C ++),您可以定义一个“类”,该类封装了属于同一类的数据和函数。类内部的那些函数称为“方法”,您需要该类的实例才能调用这种方法。
在Go中,术语基本相同,尽管Go不是经典意义上的OOP语言。在Go中,接收器的函数通常称为方法(可能只是因为人们仍然习惯于OOP的术语)。
因此,例如:
func MyFunction(a, b int) int {
return a + b
}
// Usage:
// MyFunction(1, 2)
但
type MyInteger int
func (a MyInteger) MyMethod(b int) int {
return a + b
}
// Usage:
// var x MyInteger = 1
// x.MyMethod(2)
- 3 回答
- 0 关注
- 222 浏览
添加回答
举报
0/150
提交
取消