我正在尝试使用Go参数函数,如以下链接中所述 Functional options for friendly APIs-但是我收到类型错误,但不确定为什么。
我在这里添加我的代码以供您查看:
错误消息是:
prog.go:35:18:无法将端口(func(* Server)类型)用作newServer参数中的func(* Server)类型
答案 0 :(得分:0)
正如JimB所指出的,签名需要完全匹配,包括返回值。在您的示例代码中,都有端口返回错误,例如:
port := func(srv *Server) error {
srv.Port = 8080
return nil
}
https://play.golang.org/p/LYb846jBD-m
或从NewServer的定义中删除错误:
func NewServer(name string, options ...func(srv *Server)) *Server