gpt4 book ai didi

scala - 为什么在 Scala 中不推荐 while 循环

转载 作者:行者123 更新时间:2023-12-04 03:00:36 24 4
gpt4 key购买 nike

scala 样式检查器指出如果您使用严格的函数式样式,则不推荐使用 while 循环 - http://www.scalastyle.org/rules-dev.html#org_scalastyle_scalariform_WhileChecker .我找到了 1 个解决方案 - Is there any advantage to avoiding while loops in Scala?这表示从长远来看,可变性将确保您将引入 while 模式的错误。这怎么会发生?如果不变性受到高度限制,为什么不检查 for 循环?我有一个简单的用例,我必须从最后出现的字符串中删除所有出现的子字符串。我可以找到解决方案,因为我正在使用循环。示例 - 字符串为“IABCFGHUABCABC”,子字符串为“ABC”。字符串输出应为“IABCFGHU”,其中删除了所有尾随出现的子字符串。是否有任何非命令式和推荐的方法来使用 scala 解决此问题?

最佳答案

Why is there no check for for loop if immutability is highly restricted?

因为与 C 风格不同 for循环,Scala 中没有可变性 for :

for (i <- <something>) {
<body>
}

只是编写方法调用的另一种方式 <something>.foreach { i => <body> } .

Is there any non imperative and recommended way to solve this problem using scala?

当然可以。正如您链接的问题所说,您可以使用尾递归。我不会提供代码,但想法是:如果字符串不以子字符串结尾,则返回它;如果是,则删除该结尾并使用新参数再次调用该函数。您应该思考为什么这最终会返回所需的结果。

关于scala - 为什么在 Scala 中不推荐 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49552915/

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