go标准库-Flag
Contents
go语言中文网有很多文档缺少内容比如string.Builder就没有,godoc绝对详尽,推荐阅读godoc
常见用法
定义flag变量
- 直接声明flag变量
|
|
- 先声明普通变量再关联到flag变量
|
|
加载flag
|
|
变量
- var CommandLine = NewFlagSet(os.Args[0], ExitOnError)
常量
|
|
函数
- func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet:新建一个flagset,errorHandling表示在parse时出错的反应:
type FlagSet struct
|
|
FlagSet代表一个已注册的flag的集合,默认采用ContinueOnError
方法
- func (f *FlagSet) Init(name string, errorHandling ErrorHandling):设置名字和错误处理
type Value interface
|
|
flag默认单例和flagset都有的函数或方法
- func (f *FlagSet) NFlag() int:flag的数量
- func (f *FlagSet) Arg(i int) string:返回剩下的第i个参数,从0开始
- func (f *FlagSet) Lookup(name string) *Flag:返回已经f中已注册flag的Flag结构体指针;如果flag不存在的话,返回nil
- func (f *FlagSet) NArg() int:NArg返回解析flag之后非flag参数的个数
- func (f *FlagSet) Args() []string:返回解析之后剩下的非flag参数,与NArg一致,不过这里是返回值,NArg返回个数
- func (f *FlagSet) Set(name, value string) error:设置已注册的flag的值
- func (f *FlagSet) Parse(arguments []string) error:从arguments中解析注册的flag
- 类型():func Bool(name string, value bool, usage string) *bool,返回一个指针
- 类型Var():func BoolVar(p *bool, name string, value bool, usage string)
可用的类型有:Bool,Int,Int64,Uint,Uint64,Float64,String,Duration
特殊类型有Var:func Var(value Value, name string, usage string),会调用Value接口的Set方法来解析出Var的值