2011-04-10 26 views
13

我想将Int范围转换为列表或数组。 我有这样的代码在斯卡拉2.8工作:如何将范围转换为列表或数组在斯卡拉

var years: List[Int] = List() 
val firstYear = 1990 
val lastYear = 2011 

firstYear.until(lastYear).foreach(
    e => years = years.:+(e) 
) 

我想知道是否有另一种语法可能,避免使用的foreach,我想在这部分代码没有循环。

非常感谢!

卢瓦克

回答

38

您可以使用toList方法:

scala> 1990 until 2011 toList 
res2: List[Int] = List(1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010) 

toArray方法转换Range数组。

+1

谢谢!这也适用于'Iterator's,我一直在寻找 – 2011-07-23 17:32:16

10

RangetoListtoArray方法:

firstYear.until(lastYear).toList 

firstYear.until(lastYear).toArray 
+0

完美,非常感谢! – Loic 2011-04-10 18:45:36

10

简单:

(1990 until 2011).toList 

,但不要忘了,until包括最后的数字(2010年停止)。如果你想2011年,使用to

(1990 to 2011).toList 
+0

太好了,非常感谢您的回答! – Loic 2011-04-10 18:45:08

14

还有还有这个,除了其他答案:

List.range(firstYear, lastYear) 
相关问题