Как преобразовать диапазон в список или массив в Scala

Я хочу преобразовать диапазон Int в список или массив. У меня этот код работает в Scala 2.8:

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

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

Я хотел бы знать, есть ли другой синтаксис, чтобы избежать использования foreach, я бы хотел, чтобы в этой части кода не было цикла.

Спасибо большое!

Лоик

Ответы

Ответ 1

Вы можете использовать метод 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 в массив.

Ответ 2

И еще это, помимо других ответов:

List.range(firstYear, lastYear)

Ответ 3

Range имеет метод toList и a toArray:

firstYear.until(lastYear).toList

firstYear.until(lastYear).toArray

Ответ 4

Просто:

(1990 until 2011).toList

но не забывайте, что until не включает последнее число (останавливается в 2010 году). Если вы хотите 2011, используйте to:

(1990 to 2011).toList