2015-03-08 56 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!} 
相關問題