Куда ушел $>?
Это одно из решений этой проблемы.
a=[];$<.map{|l|l=='0'?($><<a.pop):a<<l}
Я запускаю его на терминале, но он не отображает вывод.
Где есть $>
что пропало $DEFAULT_OUTPUT?
я использовал p $>
и т.д., но это не выводит результат.
Как я могу отобразить результат $>
на терминале?
1 ответ
$>
работает нормально, проблема в другом месте.
irb> $><<:hello_world
hello_world=> #<IO:<STDOUT>>
Настоящий виновник $<
(который ARGF
). Когда ты бежишь $<.each { }
в терминале нет аргументов для ARGF
и он ждет их.
irb> $<.map { }
# hangs...
Если вы поместите это в файл и запустите его с аргументами командной строки или передадите аргументы из чего-то еще, это, вероятно, сделает то, что вы ожидаете.
Если вы замените $<
с массивом вроде бы работает.
arr = ['0', '1', '2']
a=[];arr.map{|l|l=='0'?($><<a.pop):a<<l}
#=> [#<IO:<STDOUT>>, ["1", "2"], ["1", "2"]]