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)
}