为了账号安全,请及时绑定邮箱和手机立即绑定

Go中的功能和方法有何不同?

Go中的功能和方法有何不同?

Go
动漫人物 2021-04-28 13:08:26
我正在尝试开始使用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)


查看完整回答
反对 回复 2021-05-10
  • 3 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信