隐藏golang消息
是否可以隐藏golang消息?我举一个例子:隐藏golang消息,go,flags,messages,Go,Flags,Messages,是否可以隐藏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\tTest
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...")
}
}
主程序包
进口(
“旗帜”
“fmt”
“操作系统”
)
var signal=flag.String(“z”、“”、“”)
func main(){
flag.Usage=func(){
fmt.Printf(“用法:kata-z\n\n”)
fmt.Printf(“测试\t测试\n”)
fmt.Printf(“版本\t版本\n”)
格式打印项次(“”)
}
flag.Parse()
如果len(os.Args)!=3{
flag.Usage()
操作系统退出(1)
}
开关*信号{
案例“测试”:
fmt.Println(“测试…”)
案例“版本”:
fmt.Println(“0.0.1”)
违约:
fmt.Println(“不正确…”)
}
}
此应用程序向用户显示下一个信息:
但是如果我在命令行kata-flag
中写入,系统将返回:flag需要一个参数:
或提供但未定义的标志:
以及我之前向您显示的信息
我想知道是否有可能隐藏golang的信息
附言:如果你不明白我的问题,我可以重新措辞。我找到了一个解决方案: 之前:
flag.Parse()
if len(os.Args) != 3 {
flag.Usage()
os.Exit(1)
}
现在:
我找到了一个解决方案: 之前:
flag.Parse()
if len(os.Args) != 3 {
flag.Usage()
os.Exit(1)
}
现在:
使用
flag
中的全局函数实际上会传递到名为flag.CommandLine
的全局flag.FlagSet
。在内部,这会将错误打印到输出,默认情况下输出为stderr。您可以通过将其显式设置为,例如,ioutil.Discard
,来抑制消息:
flag.CommandLine.SetOutput(ioutil.Discard)
flag.Parse()
这将丢弃
flag.Parse()
内部输出的所有消息。您还可以通过传入适当的io将其记录到您选择的任何其他位置。Writer
使用flag
中的全局函数实际上会传递到名为flag.CommandLine
的全局flag.FlagSet
。在内部,这会将错误打印到输出,默认情况下输出为stderr。您可以通过将其显式设置为,例如,ioutil.Discard
,来抑制消息:
flag.CommandLine.SetOutput(ioutil.Discard)
flag.Parse()
这将丢弃
flag.Parse()
内部输出的所有消息。您还可以通过传入适当的io.Writer
将其记录到您选择的任何其他位置,您到底想隐藏什么?flag包正按照您的要求执行。我认为这是指在flag.Parse()过程中输出的错误消息
。我想隐藏golang返回给我的消息:标志需要一个参数:
或标志已提供但未定义:
并仅显示标志。使用功能感谢@Adrian!我要写一个解决方案。你到底想隐藏什么?flag包正按照您的要求执行。我认为这是指在flag.Parse()过程中输出的错误消息
。我想隐藏golang返回给我的消息:标志需要一个参数:
或标志已提供但未定义:
并仅显示标志。使用功能感谢@Adrian!我将编写一个解决方案。这将修复您的特定错误情况,但在某些情况下,它仍可能输出自己的消息。请参阅我的答案以获得全面的解决方案。这将修复特定的错误情况,但在某些情况下,它仍可能输出自己的消息。请参阅我的答案以获得全面的解决方案。关于阻止flag包的输出,我面临同样的问题。当我尝试您的解决方案时,我得到以下错误:undefined:ioutil
。听起来您没有为ioutil
添加导入:关于阻止从标志包输出,我面临相同的问题。当我尝试您的解决方案时,出现以下错误:undefined:ioutil
。听起来您没有为ioutil
添加导入: