【发布时间】:2013-12-22 17:17:50
【问题描述】:
是否可以在赋值时避免这种影响:
irb(main):584:0>a = true
=>true
irb(main):584:0>
我有一个有很多分配的代码,当我尝试测试它时,由于所有这些返回值,我看不到结果:
true
false
true
false
true
true
..
【问题讨论】:
-
将此代码包装在 proc 对象中?
是否可以在赋值时避免这种影响:
irb(main):584:0>a = true
=>true
irb(main):584:0>
我有一个有很多分配的代码,当我尝试测试它时,由于所有这些返回值,我看不到结果:
true
false
true
false
true
true
..
【问题讨论】:
您可以启动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 >
【讨论】:
conf 并确保打印出conf.echo=false。它还需要是您启动 irb 时的第一条语句。
在命令后面加一个分号,它不打印,对 pry 和 irb 都有效
[1] pry(main)> a = true
=> true
[2] pry(main)> a = true;
[3] pry(main)>
2.0.0p247 :001 > a = true
=> true
2.0.0p247 :002 > a = true;
2.0.0p247 :003 >
【讨论】:
puts "hi";。不过,您对 Pry 行为的理解是正确的。
上面的答案都不适用于我的设置,所以我最终只是做了一个小帮手,并宣布事情超出了范围。又快又脏,但可以完成工作:
def quiet(&block)
yield
nil
end
foo = nil
quiet { foo = 'long' * 1000 }
【讨论】: