我在这里从根本上误解了Ruby吗?我已经写了大约2年的Ruby代码了,就在今天偶然发现了......
ruby-1.8.7-p249 > i = true and false
=> false
ruby-1.8.7-p249 > i
=> true
Run Code Online (Sandbox Code Playgroud)
有人能解释一下这里发生了什么吗?我确定这是规格,但这对我来说似乎有点直观......
Tho*_*mas 30
运营商&&和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>
Run Code Online (Sandbox Code Playgroud)
第一个是读(i = true) and false,第二个是i = (true && false).
sep*_*p2k 13
and具有较低的优先级比=,以便i = true and false被解析为(i = true) and false.
因此true赋值给该值i,然后该操作的返回值(这是真的)and用false编辑,这导致整个表达式评估为false,即使i仍然具有该值true.
| 归档时间: |
|
| 查看次数: |
3697 次 |
| 最近记录: |