gpt4 book ai didi

go - 隐藏 golang 消息

转载 作者:IT王子 更新时间:2023-10-29 01:54:27 25 4
gpt4 key购买 nike

是否可以隐藏 golang 消息?我给你举个例子:

package main

import (
"flag"
"fmt"
"os"
)

var signal = flag.String("z", "", "")

func main() {

flag.Usage = func() {
fmt.Printf("Usage: kata -z <command>\n\n")
fmt.Printf(" test\tTesting\n")
fmt.Printf(" version\tVersion\n")
fmt.Println("")
}

flag.Parse()
if len(os.Args) != 3 {
flag.Usage()
os.Exit(1)
}

switch *signal {
case "test":
fmt.Println("testing...")
case "version":
fmt.Println("0.0.1")
default:
fmt.Println("incorrect...")
}
}

此应用向用户显示以下信息: https://play.golang.org/p/oYwADdmlAJ

但如果我在命令行中写入 kata -flag,系统返回:flag needs an argument:flag provided but not defined: 和我之前给你看的信息。

我想知道是否可以隐藏 golang 消息?

P.S.:如果你不明白我的问题,我可以重新措辞。

最佳答案

使用 flag 中的全局函数实际上传递给一个名为 flag.CommandLine 的全局 flag.FlagSet。在内部,这会将错误打印到输出,默认情况下是 stderr。您可以通过将其显式设置为例如 ioutil.Discard 来抑制消息:

flag.CommandLine.SetOutput(ioutil.Discard)
flag.Parse()

这将丢弃所有由 flag.Parse() 内部输出的消息。您还可以通过传递适当的 io.Writer 将其记录到您选择的任何其他地方。

关于go - 隐藏 golang 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com