乐趣区

关于golang:17-Go语言方法是什么

本文视频地址

办法申明

func(接受者 类型 / 类型指针) 办法名(参数列表)(返回值列表 {

// 办法体 

}

通过接收者,上述办法被绑定到某个类型上了。上述办法就是类型的一个办法,通过类型或类型指针的实例调用该办法。

var t T
t.MethodName(参数列表)

var pt *T = &t
pt.MethodName(参数列表)

办法名首字母大写巨鼎是导出办法(公开的)
办法名定义要和类型定义放在同一个包中。

func (t T) X1() 等价 X1(t T)
当接收者类型为 T 的时候,Go 函数的参数采纳的是值传递的,这样 X1 对 t 的任何批改都是在正本上的,不会影响原来 T 类型的实例。

func (t T) X2() 等价 X2(t T)
以 * T 作为接收者,这样你对 t 的任何批改都会间接反馈到 T 类型的实例中。

如果你要对类型实例进行批改,那么接收者选型 T 指针类型。
如果没有对类型实例批改的需要,那么 T 类型和 T 类型均可;然而思考调用办法的时候接收者是值拷贝,如果 size 较大,以值传递导致耗费过大,这是还是 T 更适合一些。

退出移动版