我看过smarterer.com测试的东西。我在irb里做过这样的测试:
2.2.0 :019 > puts _|_
13
=> nil
2.2.0 :020 > c = a.to_s.to_i;c+=1;i=13;puts _|_
false
=> nil 很奇怪的行为。那么这个东西是什么,它应该做什么呢?
发布于 2015-07-09 14:08:03
是三个代币。_、|和_,它只在定义了_的IRB或其他环境中工作。
这是:
puts _|_...is和这个完全一样.
puts _ | _...which本身是变量_的简单按位或或。
我能想到这样做的唯一原因是,在需要真正的布尔值(而不仅仅是虚值)的情况下,它将将nil转换为false:
irb(main):001:0> nil | nil
=> false否则,对于支持a | a的类型,a始终是a,而某些内置类型的notable exception则是这样。
https://stackoverflow.com/questions/31319875
复制相似问题