Question

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 :)

Était-ce utile?

La solution

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top