我想将一个Int范围转换为List或Array。这段代码在Scala 2.8中可行:
var years: List[Int] = List()
val firstYear = 1990
val lastYear = 2011
firstYear.until(lastYear).foreach(
e => years = years.:+(e)
)
我想知道是否有其他语法可以避免使用foreach,在这段代码中不需要循环。非常感谢! - Loic我想将一个Int范围转换为List或Array。这段代码在Scala 2.8中可行:
var years: List[Int] = List()
val firstYear = 1990
val lastYear = 2011
firstYear.until(lastYear).foreach(
e => years = years.:+(e)
)
我想知道是否有其他语法可以避免使用foreach,在这段代码中不需要循环。非常感谢! - Loic您可以使用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
转换成数组。
除了其他答案之外,还有这个:
List.range(firstYear, lastYear)
Range
有一个toList
和一个toArray
方法:
firstYear.until(lastYear).toList
firstYear.until(lastYear).toArray
简单来说:
(1990 until 2011).toList
但不要忘记,until
不会包括最后一个数字(停止在 2010 年)。如果你想要 2011 年,应该使用 to
:
(1990 to 2011).toList
Iterator
。 - Dave Vogt