我想知道我们如何识别Range的降序。
我有一个测试用例,其中在(1..-1)中给出了范围,而to_a方法给出了相同的空数组。
(1..5).to_a
=> [1, 2, 3, 4, 5]
(5..1).to_a
=> []帮我写一个条件,可以确定降序Range是给定的。
发布于 2019-05-07 14:52:12
Range有Range#first和Range#last方法。
r = (5..1)
r.first > r.last # => true发布于 2019-05-07 15:48:55
(5..1).size.zero?
#⇒ true
(1..5).size.zero?
#⇒ false发布于 2019-05-07 17:01:14
如果您只想检查反向范围:
(5..1).to_a.empty? #=> true
(1..5).to_a.empty? #=> false
如果想要有一个数组作为输出,可以这样做
r.to_a.then { |ary| ary.empty? ? (r.end..r.begin).to_a.reverse : ary }这两种情况的输出是:
r = (5..1) #=> [5, 4, 3, 2, 1]
r = (1..5) #=> [1, 2, 3, 4, 5]https://stackoverflow.com/questions/56016940
复制相似问题