有方法文字吗?

时间:2015-09-03 00:39:50

标签: go

是否可以定义方法文字?像下面的代码,但工作。

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

1 个答案:

答案 0 :(得分: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()
}