Ruby 语言中的 _|_ 是什么?
What is it _|_ in Ruby language?
我看过它 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
如此奇怪的行为。那么这是什么东西,它应该做什么?
三个令牌。 _
、|
、_
,且仅在IRB或其他定义了_
的环境下有效。
这个:
puts _|_
...与此相同...
puts _ | _
...这是变量 _
与自身的简单按位或。
我能想到这样做的唯一原因是它会把 nil
变成 false
在你需要一个真正的布尔值的情况下,而不仅仅是一个虚假的值:
irb(main):001:0> nil | nil
=> false
否则,对于支持 |
的类型,a | a
将始终是 a
,某些内置类型的 。
我看过它 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
如此奇怪的行为。那么这是什么东西,它应该做什么?
三个令牌。 _
、|
、_
,且仅在IRB或其他定义了_
的环境下有效。
这个:
puts _|_
...与此相同...
puts _ | _
...这是变量 _
与自身的简单按位或。
我能想到这样做的唯一原因是它会把 nil
变成 false
在你需要一个真正的布尔值的情况下,而不仅仅是一个虚假的值:
irb(main):001:0> nil | nil
=> false
否则,对于支持 |
的类型,a | a
将始终是 a
,某些内置类型的