2-常用标准库之-flag

一 介绍

开发命令行程序时,经常需要接受命令行传入的参数

如这种 运行程序时,传入参数,app.exe -name=lqz age=99

flag包提供了参数处理的功能,官方文档地址:https://golang.google.cn/pkg/flag/

二 使用方式一(flag.String flag.Int)

func main() {
	// 1 flag.String   flag.Int
	//第一个参数:命令行参数的名称
	//第二个参数:命令行不输入时的默认值
	//第三个参数:该参数的描述信息,help命令时会显示
	fptr := flag.String("path", "test.txt", "file path to read from")

	//命令行中输入:go run t_flag.go --path=a.txt
	//go run t_flag.go --path a.txt
	//go run t_flag.go -path a.txt

	//fptr := flag.Int("path ", 99, "file path to read from")
	//命令行中输入:go run t_flag.go -path=55

	flag.Parse()                           //在程序访问 flag 之前,必须先调用 flag.Parse()
	fmt.Println("value of path is", *fptr) //使用解引用
}

三 使用方式二(flag.StringVar flag.IntVar)

func main() {

	//第一个参数:存放值的参数地址
	//第二个参数:命令行参数的名称
	//第三个参数:命令行不输入时的默认值
	//第四个参数:该参数的描述信息,help命令时会显示
	var (
		name string
		age int 
	)
	flag.StringVar(&name, "name", "lqz", "use of name")
	flag.IntVar(&age, "age", 99, "use of age")
	//命令行中输入:go run t_flag.go -name=xxx
	flag.Parse()
	fmt.Println("传入的名字为", name, "传入的年龄为:", age)
}
posted @ 2022-03-12 15:37  刘清政  阅读(102)  评论(0编辑  收藏  举报