为了账号安全,请及时绑定邮箱和手机立即绑定

在指针上定义的方法仍然可以用值调用

在指针上定义的方法仍然可以用值调用

Go
人到中年有点甜 2021-08-10 15:00:50
“Effective Go”文档说明如下。关于接收者的指针与值的规则是值方法可以在指针和值上调用,但指针方法只能在指针上调用。http://tip.golang.org/doc/effective_go.html#pointers_vs_values因此,如果我定义一个如下所示的方法,它不是不能用值调用吗?func (self *someStruct) Change(newNum int) {    self.propertyOne = newNum}但是,以下似乎仍然有效。structInstance := &someStruct{    propertyOne: 41,}(*structInstance).Change(456)为什么?它是否将值转换(*structInstance)回Change调用的地址/指针?如何确保某个类型的某些实例无法调用在指针上定义的方法(如Change)?去游乐场演示http://play.golang.org/p/azbpp_djlG
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信