在为Ruby中的变量赋值时,如何避免控制台输出

时间:2013-12-22 17:17:50

标签: ruby irb

分配值时是否可以逃避该效果:

irb(main):584:0>a = true
=>true
irb(main):584:0>

我有一个有很多分配的代码,当我尝试测试它时,由于所有这些返回值,我看不到结果:

true
false
true
false
true
true
..

3 个答案:

答案 0 :(得分:13)

您可以启动irb或附加--noecho选项的控制台。

$ irb --noecho
2.0.0p353 :001 > true
2.0.0p353 :002 > 

否则,如果控制台是由另一个进程启动的,只需设置conf.echo = false

即可
$ irb 
2.0.0p353 :001 > true
 => true 
2.0.0p353 :002 > conf.echo = false
2.0.0p353 :004 > true
2.0.0p353 :005 > 

答案 1 :(得分:7)

在命令后面加一个分号,它不打印,适用于pry和irb

PRY

[1] pry(main)> a = true
=> true
[2] pry(main)> a = true;
[3] pry(main)>

IRB

2.0.0p247 :001 > a = true
 => true
2.0.0p247 :002 > a = true;
2.0.0p247 :003 >

答案 2 :(得分:0)

上面的答案都不适用于我的设置,所以我最终只是做了一个小助手并声明了超出范围的东西。快速而肮脏,但可以完成工作:

def quiet(&block)
  yield
  nil
end

foo = nil
quiet { foo = 'long' * 1000 }