在
Ruby中比较三个整数值有一种不那么冗长的方法吗?
例如,在Python中,以下返回True:
x = 2
y = 3
z = 4
x < y < z
使用Ruby中的相同变量绑定,以下内容都将返回true:
x < y && y < z
x.send(:<, y) && y.send(:<, z)
但是这个:
x < y < z
返回NoMethodError:
NoMethodError: undefined method `<' for true:TrueClass
我认为这是因为第一次比较x< y计算结果为true,并从生成的TrueClass.instance< Z’有没有办法在Ruby中比较三个整数值而不使用&&? 谢谢.
最佳答案 你可以写
(x+1...z).cover? y
或(我的偏好)
(x+1..z-1).cover? y
因为x,y和z是数字,所以它是相同的
(x+1..z-1).include? y