繁体   English   中英

前往:是否需要设置属性但没有指针接收器?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM