flag 用于解析命令行选项,有过类 Unix 系统使用经验的童鞋对命令行选项应该不陌生,例如命令 ls -al 列出当前目录下所有文件和目录的详细信息,其中 -al 就是命令行选项。
命令行选项在实际开发中很常用,特别是在写工具的时候。
自定义某些参数,如 python -m SimpleHTTPServer 8080 启动一个 HTTP 服务器,监听 8080 端口。如果不指定,则默认监听 8000 端口
1,用法介绍
a. 先定义好需要通过命令行传入的参数 关键字 例如
var intfalg int
flag.IntVar(&intflag, "intflag", 0, "int flag value")
给他赋默认值
b. 在启动的时候,传入该关健字的值 例如
go run 001.go -intflag 12
c.程序中取出该值
flag.Parse()
fmt.Println("int flag:", intflag) //12
总结:
定义一些全局变量存储选项的值,如这里的 intflag/boolflag/stringflag;
在 init 方法中使用 flag.TypeVar 方法定义选项,这里的 Type 可以为基本类型 Int/Uint/Float64/Bool,
还可以是时间间隔 time.Duration。定义时传入变量的地址、选项名、默认值和帮助信息;
在 main 方法中调用 flag.Parse 从 os.Args[1:] 中解析选项。因为 os.Args[0] 为可执行程序路径,会被剔除。
注意点:
flag.Parse 方法必须在所有选项都定义之后调用,且 flag.Parse 调用之后不能再定义选项。