Golang中方法的接受类型与调用类型

32 篇文章 1 订阅

举个例子:

a1) Distance方法的接收器参数是Point类型
a2) ScaleBy方法的接收器参数是*Point类型
b1) 变量p是Point类型
b2) 变量pptr是*Point类型

下面有三种情形:
1.b1调用a1,b2调用b2

p.Distance(q)
pptr.ScaleBy(2)

2.b1调用a2(存在隐式转换)

p.ScaleBy(2) // implicit (&p).ScaleBy(2)
             // 注意p一定是一个变量,不然不会有&p操作

3.b2调用a1(存在隐私转换)

pptr.Distance(q) // implicit (*pptr).Distance(q)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值