ruby 检查数字是否在一条语句的范围内

sg2wtvxw  于 2023-02-18  发布在  Ruby
关注(0)|答案(1)|浏览(151)

有没有一种方法可以检查一个数x是否大于一个数a并且小于一个数b,而不需要指定x两次?
我可以这样做:

x = 4
a = 1
b = 10
x > a && x < b

......但有没有办法做到这一点:

# not valid ruby, is there another way?
a < x < b
j9per5c4

j9per5c41#

  • 这没有准确回答问题,请阅读答案的编辑部分。*

测试了x为整数和浮点数时的工作情况。

(a..b).include? x

编辑:正如@spickermann在评论中指出的,最初的问题不包括间隔的开始和结束。
排除结束很容易,这就是...的用途。因此

(a...b).include? x  # is the same as `a <= x && x < b`

要排除区间的开始并不容易,可以使用next_float

(a.to_f.next_float...b).include? x

然而,即使是(a...b),我也不会使用,因为它不是那么常见的文字,在我看来降低了代码的可读性。使用a.to_f.next_float,我们正在做一些非常笨拙的代码,可能适用于整数和浮点数,但我会害怕其他数值数据类型。
除非有人带来完全不同的方法,否则我会坚持使用x > a && x < b

相关问题