API
Go的flag包用来解析命令行参数。
参数的表示方法为:
-flag
-flag=x
-flag x // x不能是bool值
主要的API如下:
// 获取名字为name的参数值,默认值为value,用法为usage
// 注意返回值是一个指针
// 类似的方法还有 Int(),Bool()等。
func String(name string, value string, usage string) *string
// 这种方式p作为返回值,可以传入变量的地址
// 类似的方法还有 IntVar(),BoolVar()等。
func StringVar(p *string, name string, value string, usage string)
// Usage用来打印用法
var Usage = func() {
// ...
}
// 解析参数,应在设置完参数变量后调用
func Parse()
例子
package main
import (
"flag"
"fmt"
)
func main() {
var src string
flag.StringVar(&src, "src", "", "source file")
var level *int
level = flag.Int("level", 0, "debug level")
var memo string
flag.StringVar(&memo, "memo", "", "the memory")
flag.Parse()
flag.Usage()
fmt.Printf("src=%s, level=%d, memo=%s\n", src, *level, memo)
}
执行 args.exe -src="123" -level=4 -memo="567"
,输出如下:
Usage of args.exe:
-level int
debug level
-memo string
the memory
-src string
source file
src=123, level=4, memo=567