简介
flag
用于实现命令行标志的解析。
一般流程
-
定义命令行标志
-
解析命令行标志
-
获取解析标志外的命令行参数
-
使用解析后的标志和参数
支持的标志格式
-
-flag
:短标志 -
--flag
:长标志 -
-flag=value
:短标志和值 -
-flag value
:短标志和值,仅限非布尔标志
解析规则
-
标志解析会在遇到第一个非标志参数(
-
被视为非标志参数)或者终止符--
之后停止。 -
1
0
t
f
T
F
true
false
TRUE
FALSE
True
False
均可被解析为布尔值。 -
标志解析的返回值均为对应类型的
指针
。
包函数
方法 | 含义 | 说明 |
---|---|---|
NewFlagSet | 创建一个新的标志集 | 通常用于创建子命令的标志集 |
Lookup | 查找标志集中的标志 | |
Set | 设置标志集中的标志的值 | |
NArg | 返回实际传入的命令行参数的数量 | 调用Parse 之后生效,不包含命令行标志 |
Arg | 返回第i 个命令行参数 |
从0 开始 |
NFlag | 返回实际传入的命令行标志的数量 | 调用Parse 之后生效 |
Parsed | 返回标志是否已被解析 | |
Parse | 解析命令行标志 | |
Bool | 定义一个布尔型标志 | |
BoolVar | 定义一个布尔型标志并绑定到指定变量 | |
Int | 定义一个整数标志 | |
IntVar | 定义一个整数标志并绑定到指定变量 | |
Int64 | 定义一个64位整数标志 | |
Int64Var | 定义一个64位整数标志并绑定到指定变量 | |
Uint | 定义一个无符号整数标志 | |
UintVar | 定义一个无符号整数标志并绑定到指定变量 | |
Uint64 | 定义一个64位无符号整数标志 | |
Uint64Var | 定义一个64位无符号整数标志并绑定到指定变量 | |
Float64 | 定义一个64位浮点数标志 | |
Float64Var | 定义一个64位浮点数标志并绑定到指定变量 | |
Duration | 定义一个时间间隔标志 | |
DurationVar | 定义一个时间间隔标志并绑定到指定变量 | |
String | 定义一个字符串标志 | |
StringVar | 定义一个字符串标志并绑定到指定变量 | |
Var | 定义一个自定义类型标志并绑定到对应变量 | 自定义类型需要实现flag.Value 接口 |
TextVar | 定义一个encoding.TextUnmarshaler 类型标志并绑定到对应变量 |
|
BoolFunc | 定义一个布尔型标志并绑定到指定函数 | 通常用于开关功能,仅标志,无值 |
Func | 定义一个标志并绑定到指定函数 | 其值会传递给指定函数 |
Visit | 遍历已经被设置的命令行标志并调用传入的函数 | |
VisitAll | 遍历所有命令行标志并调用传入的函数 | |
UnquoteUsage | 去除标志的引号 |