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