赞 | 286 |
VIP | 11 |
好人卡 | 74 |
积分 | 220 |
经验 | 281171 |
最后登录 | 2024-5-6 |
在线时间 | 9337 小时 |
Lv5.捕梦者 (暗夜天使) 只有笨蛋才会看到
- 梦石
- 1
- 星屑
- 21005
- 在线时间
- 9337 小时
- 注册时间
- 2012-6-19
- 帖子
- 7107
|
有丘直方 发表于 2016-1-28 20:27
已经加了括号。——话说&&和||意思与and和or有什么不同 - 一个垃圾参数(((1 + 1 == 2) and (2 + 2 == 4)))
复制代码 and/or 不同于 &&/||- surprise = true and false # => surprise is true
- surprise = true && false # => surprise is false
复制代码 最佳实践
只使用 && / || 运算符。
详情
and / or 运算符的优先级比 && / || 低
and / or 的优先级比 = 低,而 && / || 的优先级比 = 高
and 和 or 的优先级相同,而 && 的优先级比 || 高
我们来给上述示例代码加上括号,这样就可以明显地看出 and 和 && 在用法上的不同之处了。- (surprise = true) and false # => surprise is true
- surprise = (true && false) # => surprise is false
复制代码 也有这样的说法:and / or 用于流程控制,而 && / || 用于布尔型运算。但我认为:不要使用这些运算符的关键字版本(and / or / not),而使用更为清晰的 if 和 unless 等。更加明确,更少困惑,更少 bugs。
延伸阅读:Difference between “or” and || in Ruby?(http://stackoverflow.com/questio ... ween-or-and-in-ruby) |
评分
-
查看全部评分
|