在使用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
网友评论