我= true和false在Ruby中是真的吗?

我是不是从根本上误解红宝石在这里? 我一直在写Ruby代码约2年,就在今天无意中发现了这个...

ruby-1.8.7-p249 > i = true and false => false ruby-1.8.7-p249 > i => true

可能有人解释这是怎么回事就在这里吗? 我敢肯定,这是符合规范的,但它只是似乎直觉,我...

--------------解决方案-------------

运算符&&and具有不同的优先级,并=恰好交替进行英寸

irb(main):006:0> i = true and false
=> false
irb(main):007:0> i
=> true
irb(main):008:0> i = true && false
=> false
irb(main):009:0> i
=> false
irb(main):010:0>

首先是读作(i = true) and false ,第二个为i = (true && false)

and优先级比=所以i = true and false被解析为(i = true) and false

所以价值true被分配给i ,然后该操作(这是真的)的返回值是and ED假,这将导致整个表达式来评估,以false,即使i仍然具有价值true

你行被解析为

i = true and false
(i = true) and false
true and false

当然,因为i = truei将是true之后。

据我了解你的代码,它被解释为:

  • 指定真实的我
  • 回来以后,我和假

结果似乎是正确的。

正如其他人上面阐明,关键字and当你想将两种不同语句在一行中使用。 这仅仅是一个使您的代码可读性更好的方式。

从而,

i = true and false

暗示

i = true; false i = true; false #(红宝石不太广泛使用的代码布局)

或者这是最简单的方法:


i = true
false

这样,在输出是正确的。 否则,如果你期待的false ,然后使用布尔值和 &&

分类:红宝石 时间:2015-03-15 人气:4
本文关键词: 红宝石
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.293 (s). 10 q(s)