pflag.Usage
实现自定义使用帮助
- 定义参数
var (
host string
user string
port int
password string
)
- pflag是Go flag包的一个替代插件,实现了POSIX / GNU风格的flag,基本使用于"flag"包基本相同
-
github.com/spf13/pflag
- 默认标志位:
--
pflag.Usage = func() {
pflag.PrintDefaults()
}
pflag.ErrHelp = errors.New("")
pflag.StringVarP(&host, "host", "h", "127.0.0.1", "The host to connect to db")
pflag.StringVarP(&password, "password", "p", "", "User password")
pflag.IntVarP(&port, "port", "P", 26257, "TCP/IP port")
pflag.StringVarP(&user, "user", "u", "root", "Username")
// 在帮助文档中隐藏参数 user
pflag.CommandLine.MarkHidden("user")
// 传递的命令行参数解析为对应变量的值
pflag.Parse()
- bool类型的参数:
--flag // 等同于 --flag=true
--flag=value // 建议写法
--flag value // 只有在没有设置默认值时才生效
NoOptDefVal 用法
pflag 包支持通过简便的方式为参数设置默认值之外的值,实现方式为设置参数的 NoOptDefVal 属性:
flag.Lookup("user").NoOptDefVal = "root"
go build完,直接main.go -h 即可查看效果。