gpt4 book ai didi

scala - 将 'for' 循环从 Java 重写为 Scala

转载 作者:行者123 更新时间:2023-12-02 17:32:31 27 4
gpt4 key购买 nike

我需要将一些 Java 代码转换为 Scala。我有这样的来源。如何用Scala重写它?问题可能很简单。但它比文档中的 for(i <- 1 until 10) {} 示例更匹配。

for (int i = password.length(); i != 0; i >>>=1)
{ some code }

国王问候,阿列克谢

最佳答案

如果你希望它尽可能快——我假设是考虑到移位操作的情况——那么你应该使用 while 循环:

var i = password.length()
while (i != 0) {
// some code
i >>>= 1
}

在相同的操作下,这是 Java 比 Scala 更紧凑的少数情况之一。

您还可以使用尾递归:

final def passwordStuff(password: Password)(i: Int = password.length): Whatever = {
if (i != 0) {
// Some code
passwordStuff(password)(i >>> 1)
}
}

它将编译成与 while 循环相同速度的东西(无论如何,几乎在所有情况下)。

关于scala - 将 'for' 循环从 Java 重写为 Scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10506490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com