有没有一种方法可以检查一个数x是否大于一个数a并且小于一个数b,而不需要指定x两次?我可以这样做:
x = 4 a = 1 b = 10 x > a && x < b
......但有没有办法做到这一点:
# not valid ruby, is there another way? a < x < b
j9per5c41#
测试了x为整数和浮点数时的工作情况。
x
(a..b).include? x
编辑:正如@spickermann在评论中指出的,最初的问题不包括间隔的开始和结束。排除结束很容易,这就是...的用途。因此
...
(a...b).include? x # is the same as `a <= x && x < b`
要排除区间的开始并不容易,可以使用next_float:
next_float
(a.to_f.next_float...b).include? x
然而,即使是(a...b),我也不会使用,因为它不是那么常见的文字,在我看来降低了代码的可读性。使用a.to_f.next_float,我们正在做一些非常笨拙的代码,可能适用于整数和浮点数,但我会害怕其他数值数据类型。除非有人带来完全不同的方法,否则我会坚持使用x > a && x < b
(a...b)
a.to_f.next_float
x > a && x < b
1条答案
按热度按时间j9per5c41#
测试了
x
为整数和浮点数时的工作情况。编辑:正如@spickermann在评论中指出的,最初的问题不包括间隔的开始和结束。
排除结束很容易,这就是
...
的用途。因此要排除区间的开始并不容易,可以使用
next_float
:然而,即使是
(a...b)
,我也不会使用,因为它不是那么常见的文字,在我看来降低了代码的可读性。使用a.to_f.next_float
,我们正在做一些非常笨拙的代码,可能适用于整数和浮点数,但我会害怕其他数值数据类型。除非有人带来完全不同的方法,否则我会坚持使用
x > a && x < b