Ruby数组范围

时间:2011-02-09 13:52:29

标签: ruby-on-rails ruby arrays

(2011..1995).to_a 

返回一个数组

(Time.now.year.to_i..1995).to_a

没有。为什么呢?

5 个答案:

答案 0 :(得分:12)

> 2011.downto(1995).to_a
=> [2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995]

答案 1 :(得分:2)

您可以使用此

(Time.now.year.to_i).downto(1995).to_a

答案 2 :(得分:0)

我不认为这两种方法都有效。这是WinXP上的irb ...

irb(main):009:0> (2011..1995).to_a
=> []
irb(main):010:0> (Time.now.year.to_i..1995).to_a
=> []
irb(main):011:0>

答案 3 :(得分:0)

(1995..Time.now.year.to_i).to_a有效。结束应该比开始大。

答案 4 :(得分:0)

我无法复制你的结果。这两个表达式都返回一个数组。

当然,由于两个范围都是空的,表达式将始终返回数组,但这与您的问题无关。