卡在练习 28 学习 Ruby 困难的方式 - IRB 中的不同回报



目前正在做练习 28 链接:http://learnrubythehardway.org/book/ex28.html

在"常见的学生问题"下,有以下内容:

问题

为什么"test"&&"test">

返回"test"或1&&1

返回1而不是true?

Ruby 和许多语言喜欢将其中一个操作数返回到它们的布尔表达式,而不仅仅是 true 或 false。这意味着如果你做了假&&1,你会得到第一个操作数(假(,但如果你做真&&1,你会得到第二个(1(。玩一下这个。


但是,即使阅读了上面的答案,我仍然难以理解为什么

false &

& 1 返回 'false'

true &&1 返回 '1'

在IRB中。

前言:在 Ruby 中,只是false本身和nil false。其他一切都被评估为true.

false && 1

e1e2都必须true,以使整个表达式的计算结果为 truee1 false,因此无需评估 e2。 返回e1 (false(。

true && 1

e1true,所以我们需要评估甚至e2e21 . 返回1

最新更新