为了账号安全,请及时绑定邮箱和手机立即绑定

使用“标志”包时去掉“标志提供但未定义”

使用“标志”包时去掉“标志提供但未定义”

Go
Smart猫小萌 2022-09-12 16:55:15
我正在使用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


查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号