是否可以定义方法文字?像下面的代码,但工作。
type Fn struct{
sw Dialer
}
var x fn
fn := func (x Fn) Reboot() error { }
答案 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()
}