我正在尝试开始使用 Go 和文档 http://golang.org非常好。我在文档中没有找到函数和方法之间的区别。
据我目前的理解:函数是“全局”的,这意味着我不必导入包来使用函数,它们总是存在的。方法绑定到包。它是否正确?
据我目前的理解:函数是“全局”的,这意味着我不必导入包来使用函数,它们总是存在的。方法绑定到包。它是否正确?
不,那是不正确的。只有几个函数builtin http://golang.org/pkg/builtin/始终可用的包。其他一切都需要进口。
“方法”一词是在面向对象编程中提出的。在 OOP 语言(例如 C++)中,您可以定义一个“类”来封装属于一起的数据和函数。类中的这些函数称为“方法”,您需要该类的实例才能调用此类方法。
在 Go 中,术语基本相同,尽管 Go 不是经典意义上的 OOP 语言。在 Go 中,带有接收者的函数通常被称为方法(可能只是因为人们仍然习惯 OOP 的术语)。
因此,例如:
func MyFunction(a, b int) int {
return a + b
}
// Usage:
// MyFunction(1, 2)
but
type MyInteger int
func (a MyInteger) MyMethod(b int) int {
return a + b
}
// Usage:
// var x MyInteger = 1
// x.MyMethod(2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)