Go语言标准库flag
os.Args
简单的获取命令行参数,可以通过os.Args
获取。
1 | package main |
运行:
1 | go run args.go arg1 arg2 arg3 |
执行结果:
1 | [C:\Users\JIANGZ~1\AppData\Local\Temp\go-build073370358\b001\exe\args.exe arg1 arg2 arg3] |
基本使用
导入
1 | import "flag" |
参数类型
支持的命令行参数有bool
、int
、int64
、uint
、uint64
、float
、float64
、string
等
定义命令行参数
flag.Type()
格式:flag.Type(flag名, 默认值, 帮助信息)
比如说我们要定义姓名、年龄、婚否三个命令行参数。
1 | package main |
运行和输出:
1 | >>go run flag_type1.go |
flag.TypeVar()
格式:flag.TypeVar(Type指针, flag名, 默认值, 帮助信息)
比如说我们要定义姓名、年龄、婚否三个命令行参数。
1 | package main |
运行和输出:
1 | >go run flag_type2.go |
解析命令行参数
通过两种方法定义好命令行flag参数后,需要通过flag.Parse()来对命令进行参数解析。
支持的格式有以下几种:
-flag xxx
:使用空格,1个符号--flag xxx
:使用空格,2个符号-flag=xxx
:使用等号,一个符号--flag=xxx
:使用等号,一个符号
其中布尔类型的必须使用等号的方式指定。
另外还有一些其他方法:
flag.NFlag()
:返回命令行参数个数flag.Args()
:返回命令行参数之后的其他参数flag.NArg()
:返回命令行参数之后的其他参数个数
完整示例:
1 | package main |
运行和输出:
1 | >go run flag_parse.go --name="江子牙" --age 21 -isLogin=false hehe haha |