golang 可执行文件help设置

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  即可查看效果。

 

猜你喜欢

转载自blog.csdn.net/feikillyou/article/details/110485801