当其中一个操作数为nil时,Bitwise OR返回布尔值

为什么按位OR在这里返回一个布尔值。 在所有运算符中,我最不希望从按位运算符中获得。

nil | 5 # => true nil | 0 # => true nil | true # => true nil | false # => false nil | nil # => false 

在同一主题中找到答案 🙂

原来那个NilClass#| 被覆盖:

 false | obj → true or false nil | obj → true or false Or—Returns false if obj is nil or false; true otherwise.