[英]Go: Need to set property but without pointer receiver?
package main
import "fmt"
type MyClass struct{
data string
}
func (this MyClass) MyMethod() {
this.data = "Changed!"
}
func main() {
obj := MyClass{}
obj.MyMethod()
fmt.Println(obj)
}
我需要data
属性由MyMethod()
更改,但是我不能将接收者类型更改为指针( func (this *MyClass)
),因为它必须满足接收者不是指针的接口,这可以通过其他方式实现吗?
您需要使用指针接收器,而不是值接收器:
func (this *MyClass) MyMethod() {
this.data = "Changed!"
}
在play.golang.org中查看修改后的示例:
输出为:
{Changed!}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.