gpt4 book ai didi

function - Go中的函数和方法有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 12:59:04 33 4
gpt4 key购买 nike

我正在尝试开始使用 Go 和 documentation非常好。我在文档中没有找到的是函数和方法之间的区别。

据我目前的理解:函数是“全局的”,这意味着我不必导入包来使用函数,它们总是存在的。方法绑定(bind)到包。这是正确的吗?

最佳答案

As far as I understand at the moment: functions are "global", which means I do not have to import a package to use functions, they are always there. Methods are bound to packages. Is this correct?

不,这是不正确的。 builtin 中只有几个函数始终可用的软件包。其他所有内容都需要导入。

“方法”一词是由面向对象编程提出的。在 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)

关于function - Go中的函数和方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263546/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com