package ginx type Options struct { Logger Logger } func defaultOptions() Options { return Options{ Logger: NewLogger(), } } // 常量 var Op Options = defaultOptions() type Option func(*Options) func InitOptions(opts ...Option) { for _, opt := range opts { opt(&Op) } } func SetLogger(log Logger) Option { return func(o *Options) { o.Logger = log } }