ClientOption是一个接受客户端指针并返回错误(可能为nil)的函数。
例如,下面是创建ClientOption函数的超时函数:
func WithTimeout(duration time.Duration) ClientOption { return func(c *Client) error { c.timeout = duration return nil }}NewClient函数接受可变数量的ClientOption参数,可在“选项”切片中使用。它创建一个新的客户端,通过将客户端指针传递给每个ClientOption对其进行配置,然后返回该指针。
它可以如下使用:
client := NewClient(WithTimeout(3 * time.Second))
请参阅Rob Pike的自引用函数和Dave
Cheney的选项文章。



