美文网首页
Go 参数配置默认值设计架构

Go 参数配置默认值设计架构

作者: swifterlc | 来源:发表于2020-04-02 15:24 被阅读0次
package server

//定义选项结构
type Options struct {
    UserName string
    Password string
    Host string
    Port int16
}

type Option func(*Options)

type Server struct {
    Options Options
    //other
}

func NewServer(options ...Option) *Server{
    s:= &Server{Options:Options{
        UserName: "root",
        Password: "1234",
        Host:     "localhost",
        Port:     8000,
    }}
    
    for _,v := range options{
        v(&s.Options)
    }
    
    //other
    
    return s
}

func UserName(name string) Option{
    return func(o *Options) {
        o.UserName = name
    }
}

相关文章

网友评论

      本文标题:Go 参数配置默认值设计架构

      本文链接:https://www.haomeiwen.com/subject/hduxphtx.html