Golang参数函数

时间:2018-06-20 23:23:03

标签: go parameter-passing variadic-functions optional-parameters

我正在尝试使用Go参数函数,如以下链接中所述 Functional options for friendly APIs-但是我收到类型错误,但不确定为什么。

我在这里添加我的代码以供您查看:

Sample Code Here

错误消息是:

  

prog.go:35:18:无法将端口(func(* Server)类型)用作newServer参数中的func(* Server)类型

1 个答案:

答案 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

https://play.golang.org/p/4PGN3TRkBpq