菜鸟学go 技巧总结(一)--默认配置
我们经常需要写一些配置性的内容,而这些配置可能非常的复杂,信息比较多,可扩展性多。这时候经常会有一种技巧就是提供默认配置,同时提供自定义配置方法,因为很多人可能使用最常用的几个配置就可以了,这种做法在go里面非常常见。
这里举一个pflag的例子:
var CommandLine = NewFlagSet(os.Args[0], ExitOnError) // NewFlagSet returns a new, empty flag set with the specified name, // error handling property and SortFlags set to true. func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet { f := &FlagSet{ name: name, errorHandling: errorHandling, argsLenAtDash: -1, interspersed: true, SortFlags: true, } return f }
CommandLine 返回一个 默认的*FlagSet 配置 命令第一个入参作为名称,解析错误执行os.Exit(2)
同时提供了NewFlagSet,允许用户对命令名称,错误退出码自定义指定。因为我们一般使用默认的就足够了,所以这里专门写了一个默认的配置。