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

使用值接收器存储新值

使用值接收器存储新值

Go
Qyouu 2022-07-04 10:36:49
鉴于该方法具有指针接收器,因此存储新值是规范的。例如:type MyTime time.Timefunc (mt *MyTime) Change(other time.Time) {    *mt = MyTime(other)}但是没有指针接收器有可能吗?type MyTime time.Timefunc (mt MyTime) Change(other time.Time) {    // ???}也许使用reflect或atomic包装?
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

不。


当您使用值接收器调用方法时,将使用接收器的副本调用该方法。对接收器执行的任何修改都将在该副本上完成。换句话说:


x:=myTime{}

x.ValueReceiverFunc()

相当于:


x:=myTime{}

y:=x

y.ValueReceiverFunc()


查看完整回答
反对 回复 2022-07-04
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

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