Feature #12753
Updated by shyouhei (Shyouhei Urabe) over 8 years ago
Ruby's 0 is truthy value. It's useful for many cases, but it's confusing and I made many bugs when I'm writing code to handle binary data, because my thought is almost same with one to write C code in such situation. ```ruby ``` n = get_integer_value if n & 0b10100000 # code for the case when flag is true else # never comes here :( end ``` IMO it's very useful to have methods for such use-cases, like `#and?` and `#xor?` (`#or?` looks not so useful... I can't imagine the use case of this operator, but it's better to have for consistency). ```ruby ``` n = get_integer_value case when n.and?(0b10000000) # negative signed char when n.and?(0b01110000) # large positive else # small positive end ```