下面是一个go标准库flag的简单示例。演示了布尔型、字符串型、数字型参数的定义方法。
package main
import "fmt"
import "flag"
func main(){
name := flag.String("name",
"nick",
"Input your name"
)
age := flag.Int("age", 28, "Input your age")
isStudent := flag.Bool("isStudent", false, "Is student")
flag.Parse()
fmt.Printf("name=%s\n", *name)
fmt.Printf("age=%d\n", *age)
fmt.Print("isStudent=", *isStudent, "\n")
}
执行后打印结果如下:
go run get_arg.go -name abc -age 23
当指定了没有定义的参数会提示没有定义。
go run get_arg.go -name abc -age 23 -gender male
flag provided but not defined: -gender
布尔型的参数,就是没有值的参数。默认值一般设成false
,当命令行给了参数后,就变为true
。
go run getarg.go -isStudent
name=nick
age=28
isStudent=true
参数形式支持=
或者空格
:
go run get_arg.go -name abc -age 23
go run get_arg.go -name=abc -age=23
-h
、-help
、--help
可以打印出参数使用方法:
go run getarg.go -help
-age int
Input your age (default 28)
-isStudent
Is student
-name string
Input your name (default "nick")
参考文档: