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

前端之家收集整理的这篇文章主要介绍了Golang中方法的接受类型与调用类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

举个例子:

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)

猜你在找的Go相关文章