什么是 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
}
神不在的星期二
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)
- 2 回答
- 0 关注
- 207 浏览
添加回答
举报
0/150
提交
取消