坚持练习28“努力学习Ruby-irb中的不同回报”

坚持练习28“努力学习Ruby-irb中的不同回报”,ruby,Ruby,目前正在进行练习28,请点击此处链接: 在“普通学生问题”下,有以下内容: 问题 为什么“test”和“test”返回“test”或1和&1返回1而不是true 回答 Ruby和许多语言喜欢将其中一个操作数返回到它们的布尔表达式,而不仅仅是true或false。这意味着,如果执行false&&1,则得到第一个操作数(false),如果执行true&&1,则得到第二个操作数(1)。玩一下这个 然而,即使在阅读了上面的答案之后,我仍然无法理解为什么 false&&1返回“false” 当 true

目前正在进行练习28,请点击此处链接:

在“普通学生问题”下,有以下内容:

问题

为什么“test”和“test”返回“test”或1和&1返回1而不是true

回答

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


然而,即使在阅读了上面的答案之后,我仍然无法理解为什么

false&&1返回“false”

true&&1返回“1”


在irb中。

前言:在Ruby中,just
false
本身和
nil
都是
false
。其他所有内容的计算结果均为
true

false&&1

e1
e2
必须同时为
true
才能使整个表达式的计算结果为
true
e1
false
,因此无需评估e2<返回code>e1(
false

true&&1


e1
true
,因此我们需要评估
e2
e2
1
<返回code>1。

前言:在Ruby中,just
false
本身和
nil
都是
false
。其他所有内容的计算结果均为
true

false&&1

e1
e2
必须同时为
true
才能使整个表达式的计算结果为
true
e1
false
,因此无需评估e2<返回code>e1(
false

true&&1


e1
true
,因此我们需要评估
e2
e2
1
<返回代码>1。

好的,我想我知道了。如果“false”是等式的一部分,那么不管怎样,只返回false。如果'true'是其中的一部分,则它将返回'1'而不是返回true。是的,但这仅适用于&&。如果我们有
false | | 1
它也会计算e2,因为只有一个true就足以使整个表达式为true。旁注:在Ruby world中,有一种习惯称
nil
false
false
,其他的为
truthy
。否则,你的[完全正确的]答案就会一团糟。比较:“
e1
e2
都必须是
truthy
”。这肯定比我的意大利语要好:)使用
false
而不是
false
的主要原因是
nil==false
计算结果为
false
,使得
nil
成为[OMG,这很难拼写!]不是
false
,而是
false
。不管怎样,我希望你明白了。好吧,我想我明白了。如果“false”是等式的一部分,那么不管怎样,只返回false。如果'true'是其中的一部分,则它将返回'1'而不是返回true。是的,但这仅适用于&&。如果我们有
false | | 1
它也会计算e2,因为只有一个true就足以使整个表达式为true。旁注:在Ruby world中,有一种习惯称
nil
false
false
,其他的为
truthy
。否则,你的[完全正确的]答案就会一团糟。比较:“
e1
e2
都必须是
truthy
”。这肯定比我的意大利语要好:)使用
false
而不是
false
的主要原因是
nil==false
计算结果为
false
,使得
nil
成为[OMG,这很难拼写!]不是
false
,而是
false
。不管怎样,我希望你能明白我的意思。