2015-09-03 83 views
-3

是否可以定義方法文字?像下面的代碼,但工作。有沒有方法文字?

type Fn struct{ 
    sw Dialer 
} 
var x fn 
fn := func (x Fn) Reboot() error { } 
+2

你可以在你想實現什麼更具體的? –

+0

你的意思是這樣的:http://play.golang.org/p/A3YVCQbVFZ – Endophage

回答

2

不,您可以使用「函數值」,以便稍後分配它。在網絡相關的軟件包常見的一種是,一個結構有一個Dial func(network, addr string) (net.Conn, error)場可以用自定義的撥號程序(例如http.Transport)來代替

type Fn struct { 
    Reboot func() error 
} 

func main() { 
    f := Fn{} 
    f.Reboot = func() error { 
     return nil 
    } 
    f.Reboot() 
} 
+0

處理得好 - 希望q更清晰,讓更多的人可以受益,但我們不能做太多的事情。 – twotwotwo

+0

這就是我使用它的原因......一個自定義撥號程序。 –