Как преобразовать диапазон в список или массив в 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