我正在创建一个 CLI 工具,并且我想接受“-l”标志的字符串值。如果“-l”标志在没有参数的情况下传递,则使用空字符串值。 当我用空参数运行它时:
app.exe -l
我遇到错误:
flag needs an argument: -l
代码块:
flag.StringVar(&listening, "l", "", "Receive only")
我该如何解决这个错误? bool 类型适用于空参数,但这种情况也接受类似字符串:
app.exe -l "127.0.0.1"
我正在使用“flag”Go 包。
在这种情况下,您需要使用布尔标志而不是字符串,因为您的意图似乎是标记命令是否应该“仅接收”。
flag.BoolVar(&listening, "l", false, "Set to true to listen only")
flag.Parse()
然后您可以使用以下任一样式调用命令行应用程序:
app.exe -l "127.0.0.1"
或
app.exe -l=true "127.0.0.1"