我尝试使用 scala 中已声明的变量迭代 for 循环,但收到错误“不是有效的块语句”
我已经删除了变量声明行并且它工作正常。
object FirstObject
{
def main(args:Array[String])
{
var i:Int,j:Int; // variable declaration
for(i <- 1 to 10; j <- 1 to 5)
{
println(s"($i, $j)")
}
}
}
Run Code Online (Sandbox Code Playgroud)
预期结果看起来像这样
(1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (2, 1) (2, 2) (2, 3) (2, 4) (2, 5) (3, 1)......
您已经在某种程度上回答了您的问题,您不需要在外部初始化变量,这就足够了:
def main(args:Array[String]): Unit = {
for(i <- 1 to 10; j <- 1 to 5) {
println(s"($i, $j)")
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个语法糖(不完全准确):
Range(1, 11).foreach { i => // 1 to 10 produces Range(1, 11)
Range(1, 6).foreach { j => // 1 to 5 produces Range(1, 6)
println(s"($i, $j)")
}
}
Run Code Online (Sandbox Code Playgroud)
简而言之,thei和 thej是关联的变量。foreach
这是有关它的文档。