构造方法 
                                                    
                        
                    
                    
  
                    
                    package main
import (
    "fmt"
)
type options struct {
    a int64
    b string
    c map[int]string
}
func NewOption(opt ...ServerOption) *options {
    r := new(options)
    for _, o := range opt {
        o(r)
    }
    return r
}
type ServerOption func(*options)
func WriteA(s int64) ServerOption {
    return func(o *options) {
        o.a = s
    }
}
func WriteB(s string) ServerOption {
    return func(o *options) {
        o.b = s
    }
}
func WriteC(s map[int]string) ServerOption {
    return func(o *options) {
        o.c = s
    }
}
func main() {
    opt1 := WriteA(int64(1))
    opt2 := WriteB("test")
    opt3 := WriteC(make(map[int]string,0))
    op := NewOption(opt1, opt2, opt3)
    fmt.Println(op.a, op.b, op.c)
}本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           qinhan 的个人博客
 qinhan 的个人博客
         
             
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: