Pregunta

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

¿Fue útil?

Solución

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top