关于Golang中函数的接收者不同对接口的使用的影响理解

对于函数而言:

接收者为指针会改变接收者本身的值

接收者为值则只是拷贝,不会改变原本的值

并且值和指针可以任意调用对方的方法,即值可以调用接收者为指针的方法,指针可以调用接收者为值得方法。

原因是:可以自动指针解引用和值寻址

对于接口而言:

接收者为指针的方法,不能将值赋值给接口。

接收者为值得方法,会同时生成接收者为指针的方法,值和指针均可赋值给接口并调用该方法。

原因是:值被赋值给接口,不会存放值得地址,因此没有地址无法调用指针接收者的方法。

参考链接:

https://qcrao91.gitbook.io/go/interface/zhi-jie-shou-zhe-he-zhi-zhen-jie-shou-zhe-de-qu-bie

https://go.timpaik.top/11.6.html

posted @ 2024-02-22 11:29  Luci990722  阅读(23)  评论(0)    收藏  举报