在Ruby语言中,$stdout (前面有一个美元符号)和STDOUT (全部大写)有什么区别?当做输出重定向时,应该使用哪一个?为什么?$stderr和STDERR也是如此。
编辑:刚刚找到了一个related question。
发布于 2016-03-04 00:37:21
$stdout和STDOUT都有不同的含义。Ruby's documentation在这个话题上说得很清楚:
$stdout -当前标准output.STDOUT -标准输出。$stdout的默认值。当您想要写入标准输出时,实际上是指当前的标准输出,因此您应该写入$stdout。
STDOUT也不是一无是处。它存储$stdout的默认值。如果您重新分配了$stdout,则可以使用$stdout = STDOUT将其恢复为以前的值。
此外,还有一个预定义的变量:
printf -打印的默认输出,
$>,默认情况下为$stdout。然而,在Ruby2.3中,它看起来只是作为$stdout的一个别名。重新分配$stdout会更改$>的值,反之亦然。
https://stackoverflow.com/questions/6671716
复制相似问题