何时在Ruby中使用$ stderr vs STDERR?

时间:2012-03-16 23:44:06

标签: ruby

  

可能重复:
  Ruby $stdout vs. STDOUT

STDERR通常比使用$stderr更受欢迎,反之亦然?

那么STDOUT vs $stdout呢?

1 个答案:

答案 0 :(得分:20)

相反,使用$stderr是可取的。

原因是$stderr作为全局变量可以重新分配,而STDERR作为常量不应该被重新分配(它会引发警告)。

通常它们都指向相同的标准错误文件,但在某些情况下,您可能希望暂时将所有输出重定向到其他位置(例如,日志文件或字符串缓冲区),在这种情况下,您可以只是重新分配$stderr,您的所有代码都会尊重这一点(如果您足够聪明,可以首先使用$stderr代替STDERR