4 ms·
"which evaluates its left child, _and_ when it is true returns the value of its right child" I like the way you put that. I always stumble for a moment when as
by jabagonuts 14y ago
"which evaluates its left child, _and_ when it is true returns the value of its right child"
I like the way you put that. I always stumble for a moment when asked to explain why using "and" and "&&" interchangeably is not a good idea because it can lead to subtle bugs in your program. Maybe a mnemonic would help to remember this more easily.
left && right is true or false, but
left and right is right when true
or something along those lines.
- InAnEmergency 14y agoThat seems more confusing, since they evaluate to the same thing. 1.9.3p392 :001 > true && 1 => 1 1.9.3p392 :002 > true and 1 => 1 1.9.3p392 :003 > false && 1 => false 1.9.3p392 :004 > false and 1 => false 1.9.3p392 :005 > nil && 1 => nil 1.9.3p392 :006 > nil and 1 => nil Which is why explicitly checking for "true" or "false" in a conditional is unusual.