坚持学习Ruby Hard Way的练习28 - irb中的不同回报

时间:2016-08-02 14:20:42

标签: ruby

目前正在进行练习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。

1 个答案:

答案 0 :(得分:2)

前言:在Ruby中只有false本身且nilfalse。其他所有内容都评估为true

false && 1

e1e2都必须true才能使整个表达式评估为truee1false,因此无需评估e2。 <{1}}(e1)将被退回。

false

true && 1e1因此我们需要评估truee2 e2。 <{1}}已退回。