在使用 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