哪里有$>走了?

时间:2014-05-27 23:01:35

标签: ruby predefined-variables

Thisthis problem的解决方案之一。

a=[];$<.map{|l|l=='0'?($><<a.pop):a<<l}

我在终端上运行但没有显示输出。

$ {$ 1}} $ DEFAULT_OUTPUT去了哪里?

我使用了$>等,但它没有输出结果。

如何在终端上显示p $>的结果?

1 个答案:

答案 0 :(得分:1)

$>运行正常,问题出在其他地方。

irb> $><<:hello_world
hello_world=> #<IO:<STDOUT>>

真正的罪魁祸首是$<ARGF)。当您在终端中运行$<.each { }时,ARGF没有args,它会挂起等待它们。

irb> $<.map { }
# hangs...

如果你把它放在一个文件中并使用命令行参数运行它,或者在其他东西的参数中使用管道,那么它可能会按照你的预期进行。

如果用数组替换$<,它似乎可以正常工作。

arr = ['0', '1', '2']
a=[];arr.map{|l|l=='0'?($><<a.pop):a<<l}
#=> [#<IO:<STDOUT>>, ["1", "2"], ["1", "2"]]