相关疑难解决方法(0)

如何摆脱Scala中的循环?

我如何打破循环?

var largest=0
for(i<-999 to 1 by -1) {
    for (j<-i to 1 by -1) {
        val product=i*j
        if (largest>product)
            // I want to break out here
        else
           if(product.toString.equals(product.toString.reverse))
              largest=largest max product
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将嵌套for循环转换为尾递归?

来自FOSDEM 2009 上的Scala Talk http://www.slideshare.net/Odersky/fosdem-2009-1013261在第22页:

打破并继续Scala没有它们.为什么?他们有点必要; 更好地使用许多较小的函数问题如何与闭包交互.他们不需要!

解释是什么?

for-loop scala tail-recursion break

267
推荐指数
9
解决办法
18万
查看次数

如何从scala中的for循环中生成单个元素?

很像这个问题:

用于循环的早期退出的功能代码

说代码是

def findFirst[T](objects: List[T]):T = {
  for (obj <- objects) {
    if (expensiveFunc(obj) != null) return /*???*/ Some(obj)
  }
  None
}
Run Code Online (Sandbox Code Playgroud)

如何在scala中从for循环中生成单个元素?

我不想使用find,就像原始问题中提出的那样,我很好奇是否以及如何使用for循环实现它.

*更新*

首先,感谢所有评论,但我想我在问题中并不清楚.我正在为这样的事情拍摄:

val seven = for {
    x <- 1 to 10
    if x == 7
} return x
Run Code Online (Sandbox Code Playgroud)

那不编译.这两个错误是: - 返回外部方法定义 - 方法main有return语句; 需要结果类型

我知道在这种情况下find()会更好,我只是在学习和探索语言.在一个更复杂的情况下,有几个迭代器,我认为找到for实际上可以是有用的.

感谢评论者,我将开始赏金以弥补问题的糟糕结果:)

scala

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

scala ×2

break ×1

for-loop ×1

tail-recursion ×1