匹配整数

use*_*201 1 logic

我有一个问题.我有两个整数范围,例如100-500和600-800.这是他们看起来的样子:

范围1

start_range = 100
end_range = 500
Run Code Online (Sandbox Code Playgroud)

范围2

start_range_new = 600
end_range_new = 800
Run Code Online (Sandbox Code Playgroud)

我想要一个方法逻辑,我可以匹配两个范围(范围1和范围2),这样这两个范围是完全排他的,这意味着这两个范围不相交.

如果两个范围相交,则创建一个局部变量true,如果不相交,则局部变量应为false.

Ale*_*ein 8

如果您使用Rails(或ActiveSupport),您可以使用Range#overlaps?方法:

# Compare two ranges and see if they overlap each other

# (1..5).overlaps?(4..6) # => true
# (1..5).overlaps?(7..9) # => false
Run Code Online (Sandbox Code Playgroud)

如果您不想使用ActiveSupport,可以将其自己实现为辅助函数:

# Compare two ranges and see if they overlap each other
# overlaps?(1..5, 4..6) # => true
# overlaps?(1..5, 7..9) # => false
def overlaps?(one, another)
  one.cover?(other.first) || other.cover?(one.first)
end
Run Code Online (Sandbox Code Playgroud)