【发布时间】:2014-09-30 10:50:35
【问题描述】:
最近,我开始在 Scala 中编写很多我的编程竞赛。 (您可以在这里查看平台 - http://codeforces.com/)
关于问题的性质,我经常需要遍历数组或输入数据。例如。有一个问题陈述,它说,在第一行输入我会得到数字 M 然后我需要读取 M 行,或者整数或其他什么。我尝试为此使用不同的方法:
for (i <- 0 until M)
----
(0 until M).foreach
----
var i = 0
while (i < M)
---
甚至是尾递归
@tailrec
def recursion(i: Int): Unit = {
if (i < M) {
doSomething()
recursion(i + 1)
}
}
那么,我的问题是哪种结构更适合使用 Scala 风格和更好的性能? (我正在解决的问题往往需要快速执行,否则不会通过)
附: 我为此编写了一个小测试,看起来 while 和 tailrec 是表现最好的,但不是一个大问题。你可以看这里 - https://gist.github.com/MysterionRise/5daa63fdbd5d058528fe
【问题讨论】:
标签: performance scala coding-style