简介

flag用于实现命令行标志的解析。

一般流程

  1. 定义命令行标志

  2. 解析命令行标志

  3. 获取解析标志外的命令行参数

  4. 使用解析后的标志和参数

支持的标志格式

  • -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 去除标志的引号