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)
),因为它必须满足接收器不是指针的接口,这可以通过其他方式实现吗?
答案 0 :(得分:4)
您需要使用指针接收器,而不是值接收器:
func (this *MyClass) MyMethod() {
this.data = "Changed!"
}
在play.golang.org中查看修改后的示例:
输出结果为:
{Changed!}