使用Scala中for循环的值填充List

时间:2011-01-16 22:44:17

标签: scala scala-2.8 scala-collections

我对scala很新,我无法解决这个(非常)微不足道的问题。

我知道我可以用预定义的值实例化一个List,如下所示:

val myList = List(1,2)

我想用1到100000的所有整数填充List。我的目标不是为列表使用var并使用循环来填充列表。

有没有“功能性”的方法呢?

2 个答案:

答案 0 :(得分:10)

其中任何一个都可以解决问题。 (如果你在REPL中尝试它们,请注意它会尝试打印所有百万十万个条目,这通常不起作用。)

List.range(1,100001)
(1 to 100000).toList

答案 1 :(得分:2)

我对Scala也很陌生,它非常棒,不是吗。

Rex有绝对正确的答案,但需要深思熟虑:如果你想要一个未经过预先评估的列表(也许在评估列表中的项目所涉及的计算是昂贵的,或者你只是想让事情变得懒惰),您可以使用Stream

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

这可以在您使用List的大多数情况下使用。