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

我正在使用go制作一个API请求工具,并希望使用“标志”包。

我已经定义了一个标志,但是当我输入一个不存在

的标志时,程序会打印“提供但未定义的标志:{flag}”(其中{flag}是一个不存在的标志。flag.String


我的代码是:


package main


import "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)

    }

}


Smart猫小萌
浏览 82回答 1
1回答

收到一只叮咚

函数,如 并操作名为 的导出单例。抑制该标志集中所有错误消息的一种方法是将其输出转移到黑洞(例如,在主函数的顶部),如下所示:flag.Stringflag.Parse*flag.FlagSetflag.CommandLineflag.CommandLine.SetOutput(io.Discard)之后,您认为令人讨厌的错误消息将不会打印:$ go run main.go --whateverUsage: TestTestTestexit status 1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go