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
编辑:我忘了把返回为零,现在它是有道理的,这要归功于第一个答案:)
没什么奇怪的,因为:puts
方法返回nil
,&&
运算符的第二个参数没有计算。但是,在第一种情况下,您既调用了:a
,又调用了:b
,因为该方法返回:a
nil
。