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
发生了什么事?我正在使用1.9.3
编辑:我忘了把回报为零,现在它是有道理的,这要归功于第一个答案:)
答案 0 :(得分:3)
没什么奇怪的,因为:puts
方法返回nil
,&&
运算符的第二个参数没有被评估。但是,在第一种情况下,您同时调用:a
,然后调用:b
,因为:a
方法返回nil
。