Заполнить список значениями цикла for в Scala - PullRequest
2 голосов
/ 17 января 2011

Я довольно новичок в scala и не могу решить эту (довольно) тривиальную проблему.

Я знаю, что могу создать экземпляр List с предопределенными значениями, такими как:

val myList = List(1,2)

Я хочу заполнить список всеми целыми числами от 1 до 100000. Моя цель - не использовать переменную для списка и использовать цикл для заполнения списка.

Есть ли "функциональный" способ сделать это?

Ответы [ 2 ]

10 голосов
/ 17 января 2011

Любой из них сделает свое дело. (Однако, если вы попробуете их в REPL, имейте в виду, что он попытается напечатать все миллион сто тысяч записей, что обычно не сработает.)

List.range(1,100001)
(1 to 100000).toList
2 голосов
/ 19 января 2011

Я также очень новичок в Scala, это довольно здорово, не правда ли.

Рекс имеет абсолютно правильный ответ, но в качестве пищи для размышлений: если вы хотите список, который не оценивается заранеевозможно, вычисления, связанные с оценкой элементов в списке, являются дорогостоящими, или вы просто хотите сделать вещи ленивыми), вы можете использовать Stream .

Stream.from(0,1).takeWhile(_<=100000)

.большинство ситуаций, когда вы используете список.

...