当前位置:  开发笔记 > 后端 > 正文

(Ruby)如何检查范围是否包含另一个范围的子集?

如何解决《(Ruby)如何检查范围是否包含另一个范围的子集?》经验,为你挑选了2个好方法。

如果我有两个重叠的范围:

x = 1..10
y = 5..15

当我说:

puts x.include? y 

输出是:

false 

因为这两个范围只是部分重叠.

但是如果我希望当两个范围之间存在部分重叠时它是"真实的",我该怎么写呢?换句话说,我需要一种方法来知道一个范围何时包含另一个范围的子集.我假设有一种优雅的方式在Ruby中编写它,但我能想到的唯一解决方案是冗长的.



1> MarkusQ..:

有效的方法是比较限制

(x.first <= y.last) and (y.first <= x.last)



2> 小智..:

使用大范围时要小心,但这是一种优雅的方法:

(x.to_a & y.to_a).empty?

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有