2015-03-08 61 views
-1
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)),因为它必须满足它的接收器不是指针,可以在此取得了一些其他方式的接口?前往:需要设置属性,但没有指针接收器?

+3

接口不指定接收器类型必须是什么。 – Arjan 2015-03-08 18:45:50

+1

你在上一个问题中回答了你所再问的所有问题。 – Arjan 2015-03-08 18:46:52

回答

4

你需要使用一个指针接收器,而不是一个值接收器:

func (this *MyClass) MyMethod() { 
    this.data = "Changed!" 
} 

play.golang.org修改后的示例:

输出是:

{Changed!} 
相关问题