我正在编写我的第一个 Scala 脚本来感受这种语言,但对于实现某事的最佳方式,我有点困惑。
我的情况如下,我有一个需要调用 N 次的方法,这个方法在每次运行时返回一个 Int (可能不同,执行中有一个随机组件),我想保持最好的运行(这些运行返回的最小值)。
现在,来自 Java/Python 背景,我只需使用 null/None 初始化变量,然后在 if 中进行比较,例如:
best = None
for...
result = executionOfThings()
if(best is None or result < best):
best = result
就是这样(请原谅半 python 伪代码)。
现在,在 Scala 上,我有点挣扎。我已经阅读了关于使用选项和模式匹配来实现相同效果的信息,我想我可以编写类似的代码(这是我能想到的最好的):
best match {
case None => best = Some(res)
case Some(x) if x > res => best = Some(res)
case _ =>
}
我相信这行得通,但我不确定这是否是最惯用的写法。这很清楚,但对于这样一个简单的“用例”来说有点冗长。
任何人都可以照亮我的功能?
谢谢。