目前正在进行练习28链接:http://learnrubythehardway.org/book/ex28.html
根据普通学生问题',有以下内容:
问题
为什么"测试" &安培;&安培; "测试"返回"测试"或1&& 1返回1而不是true?
答案
Ruby和许多语言都希望将其中一个操作数返回到它们的布尔表达式,而不仅仅是true或false。这意味着,如果你做了假&& 1你得到第一个操作数(假)但是如果你做了真正的&& 1你得到第二个(1)。稍微玩一下。
然而,即使在阅读了上述答案之后,我仍然无法理解为什么
false&& 1 返回' false'
而
true&& 1 返回' 1'
in irb。
答案 0 :(得分:2)
前言:在Ruby中只有false
本身且nil
为false
。其他所有内容都评估为true
。
false && 1
e1
和e2
都必须true
才能使整个表达式评估为true
。 e1
为false
,因此无需评估e2。 <{1}}(e1
)将被退回。
false
true && 1
为e1
因此我们需要评估true
和e2
e2
。 <{1}}已退回。