什么是 go this
(或self
在 python 中)构造?
type Shape struct {
isAlive bool
}
func (shape *Shape) setAlive(isAlive bool) {
}
在setAlive
函数中我该怎么做this.isAlive = isAlive;
?
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)
在您的示例中,shape
是接收器。你甚至可以这样写:
func (this *Shape) setAlive(isAlive bool) {
this.isAlive = isAlive
}