os.Args
获取命令行参数
func main() {
for k, v := range os.Args {
fmt.Printf("k:%v; 值:%v \n", k, v)
}
}
编译之后运行 build main.go
a b c
k:0; 值:./main
k:1; 值:a
k:2; 值:b
k:3; 值:c
flag
flag包实现了命令行参数的解析。
func main() {
//定义命令行参数方式1
var name string
var age int
var married bool
var delay time.Duration
flag.StringVar(&name, "name", "张三", "姓名")
flag.IntVar(&age, "age", 18, "年龄")
flag.BoolVar(&married, "married", false, "婚否")
flag.DurationVar(&delay, "d", 0, "延迟的时间间隔")
//解析命令行参数
flag.Parse()
fmt.Println(name, age, married, delay)
//返回命令行参数后的其他参数
fmt.Println(flag.Args())
//返回命令行参数后的其他参数个数
fmt.Println(flag.NArg())
//返回使用的命令行参数个数
fmt.Println(flag.NFlag())
}
查看命令行参数go run main.go -hlep
运行 go run main.go -name 胖虎 -age 18:
胖虎 18 false 0s
[]
0