美文网首页
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