我想像这样从cmd运行我的go程序:
C:\go\awesomeProject> goprogramm.exe -generate -val=2
并希望获得这样的反馈:
> Process started
> Something went wrong. Type e-mail to receive report:
> |...
是的,我在Google上搜索了很多。标准输出,执行,管道等。不能混在一起。
答案 0 :(得分:1)
最简单的方法是使用fmt
软件包及其全局功能,例如:
fmt.Println("Process started")
fmt.Println("Something went wrong. Type e-mail to receive report:")
var i int = 3
var err error = io.Eof
fmt.Printf("And some formatted text: number: %d, an error: %v\n", i, err)
如果您需要更多配置或用于重定向输出的选项,例如到文件中(以后),则可以使用log
包。
log.Println("Process started")
log.Println("Something went wrong. Type e-mail to receive report:")
var i int = 3
var err error = io.Eof
log.Printf("And some formatted text: number: %d, an error: %v", i, err)
一个明显的区别是,默认情况下,fmt
程序包写入os.Stdout
,而log
程序包写入os.Stderr
。两者都出现在您的控制台中,但是如果您要重定向这些流,则不要忘记它们。另一个区别是log
包在每个调用后面都添加了换行符。