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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值