在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
答案更好。使用那!