标签: ruby
可能重复: Ruby $stdout vs. STDOUT
STDERR通常比使用$stderr更受欢迎,反之亦然?
STDERR
$stderr
那么STDOUT vs $stdout呢?
STDOUT
$stdout
答案 0 :(得分:20)
相反,使用$stderr是可取的。
原因是$stderr作为全局变量可以重新分配,而STDERR作为常量不应该被重新分配(它会引发警告)。
通常它们都指向相同的标准错误文件,但在某些情况下,您可能希望暂时将所有输出重定向到其他位置(例如,日志文件或字符串缓冲区),在这种情况下,您可以只是重新分配$stderr,您的所有代码都会尊重这一点(如果您足够聪明,可以首先使用$stderr代替STDERR。