package main
import (
"fmt"
"flag"
)
var b = flag.Bool("b", false, "bool类型参数")
var s = flag.String("s", "", "string类型参数")
func main() {
flag.Parse()
fmt.Println("-b:", *b)
fmt.Println("-s:", *s)
fmt.Println("其他参数:", flag.Args())
}
------------------------------------
$ go run main.go
-b: false
-s:
其他参数: []
------------------------------------
$ go run main.go -b
-b: true
-s:
其他参数: []
------------------------------------
$ go run main.go -b -s test others
-b: true
-s: test
其他参数: [others]
------------------------------------
$ go run main.go -help
Usage of /tmp/go-build080353851/command-line-arguments/_obj/exe/main:
-bbool类型参数
-s string
string类型参数
exit status 2
var b = flag.Bool("b", false, "bool类型参数")
var s = flag.String("s", "", "string类型参数")
-----------------
原型:
func Bool(name string, value bool, usage string) *bool
func String(name string, value string, usage string) *string
通过flag.Bool和flag.String,建立了2个指针b和s,分别指向bool类型和string类型的变量。所以后续要通过 *b 和 *s 使用变量值。
flag.Bool和flag.String的参数有3个,分别是命令行参数名称,默认值,提示字符串。
参数 功能 name 命令行参数名称,比如 -b, -help value 默认值,未显式指定的参数,给出隐式的默认值,比如本例中-b未给出的话,*b=false usage 提示信息,如果给出的参数不正确或者需要查看帮助 -help,那么会给出这里指定的字符串 2.2 解析参数
flag使用前,必须首先解析: