flag包是用来解析启动程序时传入的参数的。
先看一个例子:
package main
import (
"flag"
"fmt"
)
func main() {
num := flag.Int("n", 10, "number")
flag.Parse()
fmt.Println(*num)
}
启动: ./flag_learn -n 123
输出: 123
flag.Int()
这个函数的签名如下:
func Int(name string, value int, usage string) *int
第一参数指定参数名叫什么;第二个参数是启动程序是没有指定参数时设置成这个值;第三个参数是描述这个参数的,运行-help
时显示出来;返回值是一个指向参数内容的指针(获取内容时记得带上*)。
要在执行完flag.Parse()
这个函数,命令参数才能解析出来,不然访问变量只会得到默认值。
除了flag.Int()
这个函数,还有其他与基本类型对于的函数,如与string对应的flag.String()、与uint64对应的flag.Uint64()等等。参数和上面的flag.Int()
是一样的,只不过是类型不同罢了。