为什么带有指针接收器的方法在接收值时仍然可以工作?

为什么带有指针接收器的方法在接收值时仍然可以工作?,第1张

为什么带有指针接收器的方法在接收值时仍然可以工作?

它不会“接收”值。Go是强类型的,因此如果在某处指定了指向T的指针,则指向T(

*T
)的指针是唯一可以作为该类型位置的值出现的选项。

“魔术”在编译器中,可以在某些条件下有效地“重写”您的代码:

x.m()
如果方法集(的类型)
x
包含
m
并且参数列表可以分配给的参数列表,则该方法调用有效
m
。如果
x
是可寻址的,并且&x的方法集包含
m
x.m()
则表示
(&x).m()

相关:方法集



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5125503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存