Nothing strange, since :puts
method returns nil
, the second argument of &&
operator didn't evaluated. However, in first case you've get the both call to :a
, and then to :b
, because :a
method returned nil
.
Strange Ruby behavior with || and &&
-
23-09-2022 - |
質問
def a
puts 'a'
end
def b
puts 'b'
end
p a || b #=> prints both 'a' and 'b' although it would only print a
p a && b #=> prints only a
What's going on? I'm using 1.9.3
Edit: I forgot puts returns nil, now it makes sense, thanks to the first answer :)
解決
所属していません StackOverflow