我正在使用go制作一个API请求工具,并希望使用“标志”包。我已经定义了一个标志,但是当我输入一个不存在的标志时,程序会打印“提供但未定义的标志:{flag}”(其中{flag}是一个不存在的标志。flag.String我的代码是:package mainimport "fmt"import "flag"import "os"func main() { // Set up command-line arguments apiRequestTool := flag.String("api", "", "") flag.Usage = func() { fmt.Fprintf(os.Stderr, "Usage: TestTestTest\n") os.Exit(1) } flag.Parse() // Check API URL value if *apiRequestTool == "" { fmt.Println("\"api\" Usage: --api [string]") os.Exit(1) }}
1 回答

收到一只叮咚
TA贡献1821条经验 获得超5个赞
函数,如 并操作名为 的导出单例。抑制该标志集中所有错误消息的一种方法是将其输出转移到黑洞(例如,在主函数的顶部),如下所示:flag.Stringflag.Parse*flag.FlagSetflag.CommandLine
flag.CommandLine.SetOutput(io.Discard)
之后,您认为令人讨厌的错误消息将不会打印:
$ go run main.go --whatever
Usage: TestTestTest
exit status 1
- 1 回答
- 0 关注
- 81 浏览
添加回答
举报
0/150
提交
取消