1、flag包
用处:在 Go 语言中,flag 包是用来解析命令行参数的
例如:查看docker的版本
-v就是命令行参数
2种常用的用法:
a、flag.Type(flag名, 默认值, 帮助信息)
name := flag.String("username", "admin", "这是一个用户名参数的描述")
pwd := flag.Int("password", 123456, "这是一个用户密码参数的描述")
flag.Parse()
fmt.Printf("用户名:%s\n", *name)
fmt.Printf("密码:%d\n", *pwd)
终端输入
go run main.go -username "fans" -password 654321
如果不加flag.Parse(),命令行参数不会被改变,将输出默认值admin和123456(即使命令行中提供了 -username 和 -password 参数,它们也不会被读取和更新)。
b、flag.TypeVar(Type指针, flag名, 默认值, 帮助信息)
var username string
var password int
flag.StringVar(&username, "username", "admin", "这是一个用户名参数的描述")
flag.IntVar(&password, "password", 123456, "这是一个用户密码参数的描述")
flag.Parse()
fmt.Printf("用户名:%s\n", name)
fmt.Printf("密码:%d\n", pwd)
输出结果与a一致,a和b方法的区别在于,a中的输出结果要通过指针打印参数,b中需要传入地址值,可以直接打印参数。