从Ruby中的无限序列中获取最后的x个数字

时间:2014-01-25 15:11:33

标签: ruby

这适用于Ruby:

a = 4..Float::INFINITY
p a.take(4) #=> [4,5,6,7]

但是我想知道是否有可能做类似的事情,范围从负无穷大到一定数量,比如说4,并且有一个方法可以从该序列获取最后的6个元素,这将是是[-1,0,1,2,3,4]。

2 个答案:

答案 0 :(得分:1)

last method怎么样?

a.last(6)

答案 1 :(得分:1)

-infinity..4范围中获取最后N个数字与选择范围4..(4-N)相同。

4.downto(4-5).to_a
# => [4, 3, 2, 1, 0, -1] 

您可以将其打包为自定义方法

def lastn(from, n)
  from.downto(from-n).to_a
end