在使用 go 的kingpin作为启动参数传递的时候,遇到了一个问题,就是当传bool型的参数时总是出错:

默认情况下不传代表的是false,即在使用时咋启动参数中不输入这个参数的信息,当输入的时候是表示true。

下面上代码看下传参信息:

var (
      flag = kingpin.Command("server", "desc")
      flagBool = server.Flag("flagBool", "desc of param").Bool()
)
func main() {
        switch kingpin.Parse() {
          case "server" : 
               if *flagBool {
                  fmt.println("flagBool", *flagBool) 
               }
        }
}

启动参数如下:

#代表使用bool默认值false
 go run  main.go  server 

#代表使用bool默认值true
 go run  main.go  server  --flagBool