6、Golang常用标准库之-flag(接收命令行传入的参数)
一 介绍
开发命令行程序时,经常需要接受命令行传入的参数
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")
fptr := flag.Int("path2 ", 99, "file path to read from")
flag.Parse() //在程序访问 flag 之前,必须先调用 flag.Parse()
fmt.Println("value of path is", *fptr) //使用解引用
}
//命令行中输入:(-或--都可以)
go run t_flag.go --path=a.txt --path2=111
go run t_flag.go -path a.txt --path2=111
三 使用方式二(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")
flag.Parse()
fmt.Println("传入的名字为", name, "传入的年龄为:", age)
}
//命令行中输入:
go run t_flag.go -name=xxx