21、flag
Go语言内置的flag
包实现了命令行参数的解析,flag
包使得开发命令行工具更为简单。
os.Args
os.Args
可以简单获取命令行参数。
1 | func main() { |
编译后执行:
1 | 06osargs>06osargs.exe a b c |
os.Args
是一个储存命令行参数的字符串切片,它的第一个参数是执行文件的名称。
flag包的基本使用
flag参数类型
flag包支持的命令行参数类型有:bool
, int
, int64
, uint
, unit64
, float
, float64
, string
, duration
flag参数 | 有效值 |
---|---|
bool | 1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False |
int | 1234、0664、0x1234等类型,也可以是负数 |
string | 合法字符串 |
Duration | 任何合法的时间段字符串。如”300ms”、”-1.5h”、”2h45m”。 合法的单位有”ns”、”us” /“µs”、”ms”、”s”、”m”、”h”。 |
Float64 | 合法浮点数 |
定义命令行flag参数
1、flag.Type()
1 | flag.Type(flag名, 默认值, 帮助信息)*Type |
Example:
1 | name := flag.String("name", "张三", "姓名") |
name
, age
, maried
, delay
均为指针类型。
2、flag.TypeVar()
1 | flag.TypeVar(Type指针, flag名, 默认值, 帮助信息) |
Example:
1 | var name string |
flag.Parse()
通过以上两种方式定义好命令行flag参数后,需要调用flag.Parse()
来对命令参数进行解析。
支持的命令参数格式:
-flag xxx
--flag xxx
-flag=xxx
--flag=xxx
布尔类型的参数必须使用等号方式指定。
flag解析第一个非flag参数之前。
flag其他函数
1 | //返回命令函参数后的其他参数,以[]string类型 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DurianLollipop的个人博客!
评论