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

去,在结构中如何引用当前对象(像java和c++中的这个)?

去,在结构中如何引用当前对象(像java和c++中的这个)?

Go
喵喔喔 2021-06-04 14:33:14
什么是 go 的this(或self在 python 中)构造?type Shape struct {    isAlive bool}func (shape *Shape) setAlive(isAlive bool) {}在setAlive函数中我该怎么做this.isAlive = isAlive;?
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

在您的示例中,shape是接收器。你甚至可以这样写:


func (this *Shape) setAlive(isAlive bool) {

    this.isAlive = isAlive

}


查看完整回答
反对 回复 2021-06-07
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

Go 的方法声明在方法名称前面有一个所谓的接收器。在您的示例中,它是(shape *Shape). 当您致电时,foo.setAlive(false) foo将传递shape给setAlive.


所以基本上以下是语法糖


func (shape *Shape) setAlive(isAlive bool) {

    shape.isAlive = isAlive

}


foo.setAlive(false)

为了


func setAlive(shape *Shape, isAlive bool) {

    shape.isAlive = isAlive

}


setAlive(foo, false)


查看完整回答
反对 回复 2021-06-07
  • 2 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

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