||运算符,结果已知时返回?
我有一个类似于以下的功能:
def check
return 2 == 2 || 3 != 2 || 4 != 5
end
我的问题是,Ruby会执行所有比较,即使第一个是真的,因此函数返回true。我的检查要密集得多,所以我想知道我是否应该以不同的方式解决这个问题,以避免每次都进行所有检查。
irb(main):004:0> 2 == 2 || 3 != 2 || 4 != 5
=> true
谢谢。
没有找到相关结果
已邀请:
5 个回复
陈獭
,如果左操作数是真实的,则不评估右操作数。 使用
,如果左操作数是假的,则不评估右操作数。
了驳
一旦第一个条件成立,就会短路。所以是的,如果你把最昂贵的条件放在最后,它会有所帮助。
怪酞撩匹
魄龟呸筹
扫窟
我们知道函数
打印其参数(以
方式)然后返回它们,所以如果
短路,只打印
,否则打印
和
。 您还可以使用
而不是
来测试逻辑
运算符,因为
始终返回
。 顺便说一下,irb是玩红宝石的好地方。除了一小部分并发之外,您可以测试那里的所有内容。