go-命令行解析flag库

doc官方提供的命令行解析库。

flag.Bool;.Int; .String 返回的是指针类型
.StringVar 把变量作为第一个参数传入了.
如果传入参数不合法,会输出使用参考信息,然后退出。

import "flag"

var(
dataDir string
isBool bool
)

flag.StringVar(&dataDir,"dataDir","", "relative data storage directory. e.g. dataDir='/mnt/blocks/'")
flag.BoolVar(&isBool,"isBool", false, "Measure unique values of a metric.")
flag.Parse()

if dataDir != ""{
fmt.Println(dataDir + " will be use to store data.")
}
if isBool {
fmt.Println("isBool is enabled")
}

// param Name, default, description
// support format: -id=1 --id=1 -id 1 --id 1
// -h get help info, will exit after .Parse() invoke
// -ok=true/1/t
ok := flag.Bool("ok", false, "is ok")
id := flag.Int("id", 0, "id")
port := flag.String("port", ":8888", "http listen port")
var name string
flag.StringVar(&name, "name", "123", "name")

flag.Parse()

fmt.Println("ok:", *ok)
fmt.Println("id:", *id)
fmt.Println("port:", *port)
fmt.Println("name:", name)