2010-03-25 3 views
16

Как быстро создать List[Int], в котором есть от 1 до 100?Scala create List [Int]

Я попытался List(0 to 100), но он возвращает List[Range.Inclusive]

Благодарности

ответ

36

Попробуйте

(0 to 100).toList 

Код, который вы пытались создает список с одним элементом - диапазона. Вы также могли бы быть в состоянии сделать

List(0 to 100:_*) 

Редактировать

List(...) вызов принимает переменное число параметров (xs: A*). В отличие от varargs на Java, даже если вы передаете Seq в качестве параметра (Range - это Seq), он по-прежнему будет рассматривать его как первый элемент в параметре varargs. В :_* говорится: «Рассматривайте этот параметр как все varargs Seq, а не только первый элемент».

Если вы читали : A* как "(:) 'A' (A) неоднократное (*)", вы можете думать о :_* как "как (:) 'что-то' (_) неоднократного (*)"

+0

Спасибо, что делает: _ * do в списке (от 0 до 100: _ *)? – portoalet

+0

Хм. Это возвращает тип 'List [scala.collection.immutable.Range.Inclusive]' для меня. @Eastsun, кажется, возвращает правильный тип. – cevaris