1

当字符串流式传输到终端时,我想拉皮条某些字符串方法。例如,我想重写String#to_s. 我希望字符串在终端上以 ANSI 颜色代码提供,而不是在将其写入文件时。为此,我必须有权访问当前正在写入的 IO。我是否有权访问标识当前读/写上下文的变量?

4

2 回答 2

2

类似字符串的方法to_s非常重要,以至于修改它们可能会弄乱很多依赖代码。与其修改方法,不如修改String方法,IO例如puts,等。您可以对例如(多态性)print的每个子类赋予不同的定义。然后,您不需要识别 IO 类。IOFile

于 2013-10-03T11:28:54.107 回答
0

IO#isatty可能是您正在寻找的。但塞尔吉奥的建议仍然是更好的选择。

更多信息

于 2013-10-03T11:18:08.813 回答