简介
flag用于实现命令行标志的解析。
一般流程
-
定义命令行标志
-
解析命令行标志
-
获取解析标志外的命令行参数
-
使用解析后的标志和参数
支持的标志格式
-
-flag:短标志 -
--flag:长标志 -
-flag=value:短标志和值 -
-flag value:短标志和值,仅限非布尔标志
解析规则
-
标志解析会在遇到第一个非标志参数(
-被视为非标志参数)或者终止符--之后停止。 -
10tfTFtruefalseTRUEFALSETrueFalse均可被解析为布尔值。 -
标志解析的返回值均为对应类型的
指针。
包函数
| 方法 | 含义 | 说明 |
|---|---|---|
| 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 | 去除标志的引号 |