What is the difference between the && and and operators in Ruby?
What is the difference between the && and and operators in Ruby?
and has lower precedence, mostly we use it as a control-flow modifier such as if:
next if widget = widgets.pop
becomes
widget = widgets.pop and next
For or:
raise "Not ready!" unless ready_to_rock?
becomes
ready_to_rock? or raise "Not ready!"
I prefer to use if but not and, because if is more intelligible, so I just ignore and and or.
Refer to "Using “and” and “or” in Ruby" for more information.
I don't know if this is Ruby intention or if this is a bug but try this code below. This code was run on Ruby version 2.5.1 and was on a Linux system.
puts 1 > -1 and 257 < 256
# => false
puts 1 > -1 && 257 < 256
# => true
and checks only first condition and gives result on other hand && strongly checks both conditions and gives logical result.