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更合适一些。

image

你可能感兴趣的:(golang)