我有一个问题.我有两个整数范围,例如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.
如果您使用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)