1
107
如何构建列表取决于您将使用的算法以及元素创建的顺序。
例如,如果元素的使用顺序与它们的使用顺序相反,那么可以使用
如果元素的使用顺序相同,则
但是,如果您不在关键路径上,并且输入足够低,则可以始终
你什么
不要
使用的是
|
2
65
对于简单情况:
:) |
3
22
嗯…这些对我来说太复杂了。我可以提议吗?
或
|
4
5
您通常希望通过消除任何变量来关注scala中的不变性。 可读性对你的同伴来说仍然很重要,所以: 尝试:
在大多数情况下,您甚至不需要转换为列表:) 索引序列将包含您需要的所有内容: 也就是说,您现在可以使用indexedseq:
|
5
2
我总是喜欢列表,我在“理解”之前使用“折叠/缩小”。但是,如果需要嵌套的“折叠”,则最好使用“用于理解”。如果我不能使用“fold/reduce/for”完成任务,那么递归是最后的方法。 因此,对于您的示例,我将这样做:
在我这样做之前:
注意:我在这里使用“foldRight(:\)”而不是“foldLeft/:)”,因为使用的顺序是“u”。对于不引发stackOverflowException的版本,请使用“foldLeft”。 |
6
2
使用
|
7
2
注意:这个答案是为旧版本的scala编写的。 从scala 2.8开始,scala集合类将被重新设计,因此准备很快改变创建列表的方式。 创建列表的前向兼容方式是什么?我不知道,因为我还没有读过2.8文档。 A PDF document describing the proposed changes of the collection classes |
8
1
作为一个新的scala开发人员,我用上面建议的方法编写了小测试来检查列表的创建时间。似乎(对于(p<-(0到x))产生p)列出了最快的方法。
|
9
0
只是一个使用collection.breakout的示例
|
davidzxc574 · 将字符串缩放为字符 2 年前 |
yic_l · 什么是“!”在这个函数中是什么意思? 2 年前 |
Jelly · Scala:用于理解递归未来 2 年前 |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 2 年前 |
Iheb Mar · 卡夫卡制作人/消费者粉碎每一秒的API调用 2 年前 |
B. Bal · 在Scala中重用类成员 2 年前 |