在Ruby中进行封闭比较的最佳实践

  • 本文关键字:比较 最佳 Ruby ruby
  • 更新时间 :
  • 英文 :


在python中,可以链链比较这样的比较:

0 < 1 < 2 and 5 > 4 > 3

我能想到的唯一在Ruby中完成的做法就是这样:

0 < 1 && 1 < 2 && 5 > 4 && 4 > 3

我认为在视觉上相当不吸引人。

我已经搜索了Google,并找到了一些类似Ruby像Python一样工作的类扩展名,但是我想知道是否有一种更简单的方法可以使用Just Core Ruby链接比较器?

1.between?(0,2)

between?适用于包括可比较模块的任何类,例如日期,字符串,阵列等

如果您具有基本下限和上限,则可以使用Enumberable#include?进行范围比较,例如:

i = 10
(5 .. 20).include?(i)

所以您知道5是您的下限,20是您的上限。

Enumberable#include?在引擎盖下使用==,因此必须步行范围并比较每个元素,因此对于大型范围来说,这是差的性能

编辑:上面的steenslag答案更好。使用那!

最新更新