Golang编程模式:函数式编程(function options)
3.1.将变动的参数放到同一结构体 这样代码就看起来简洁多了
type Server struct {
Addr string
Port int
Conf *Config
}
type Config struct {
Protocol string
Timeout time.Duration
Maxconns int
TLS *tls.Config
}
func NewServer(addr string, port int, conf *Config) *Server {
//...
}
//使用默认 config为空
srv1, _ := NewServer("localhost", 9000, nil)
//config初始化
conf := Config{Protocol:"tcp", Timeout: 60*time.Duration}
srv2, _ := NewServer("locahost", 9000, &conf)
3.2.但是上面的优化还不够装杯,后来我们在看源码(比如gin 比如mq)的时候会看到函数式编程
那就让我们看看什么是函数式编程,以后出去好装杯,当然更重要的是提升我们的代码能力