首页 > 解决方案 > 声明从未使用过——但它是吗?

问题描述

我正在用 Scala 编写,在这个if语句中,我有一个for循环,我初始化了i=0并在for循环中使用了i 。它告诉我没有使用声明,但我在for循环中使用它。top也总是等于 5。

else {
    var i = 0
    for (i <- 0 until (top))

标签: scalafor-loop

解决方案


For 循环在 Scala 中的工作方式与其他语言略有不同。在 Scala 中,推导是, , /高阶函数for的语法糖。foreachfiltermapflatMap

当你写

for (i <- 0 until top)

编译器将其重写为

(0 until top).foreach {
  i => ...
}

这里,foreachbody 是一个匿名函数,其中i的函数参数与 iterable 具有相同的类型。因此,您只需删除i代码片段中的声明即可。


推荐阅读