go-方法声明-方法定义和函数定义对比
包级别的函数(Package-level Function)
就是普通的、不属于任何类型的函数,定义在包内,通过 包名.函数名 调用:
1 | package geometry |
接收器(Receiver)
在函数名前面多加一个参数,这个函数就变成了该类型的方法,这个参数就叫接收器:
1 | // ┌── 接收器 ──┐ |
对比一目了然
1 | // 包级别函数:两个点都是普通参数 |
| 包级别函数 | 方法 | |
|---|---|---|
| 语法 | func 函数名(参数) |
func (接收器) 方法名(参数) |
| 归属 | 属于包 | 属于某个类型 |
| 调用 | 包名.函数名() |
对象.方法名() |
| 类比 | 像 C 的普通函数 | 像 Java/Python 中类的方法 |
简单理解:接收器就是告诉 Go “这个函数是谁的方法”,相当于其他语言里的 this/self,只是 Go 把它显式写在了函数签名里。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.