Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

17. Go语言---方法是什么

欢喜哥 2021-01-21 17:00:30 阅读数:16 评论数:0 点赞数:0 收藏数:0

本文视频地址

方法声明

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

版权声明
本文为[欢喜哥]所创,转载请带上原文链接,感谢
https://segmentfault.com/a/1190000039052020

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;