"for(i < - 1到x; j < - 1到y)"实际上如何增加Scala中的变量?

use*_*254 2 syntax for-loop scala

下面的循环如何递增?

for(i <- 1 to 3; j <- 1 to 3) print((10 * i + j) + " ")
Run Code Online (Sandbox Code Playgroud)

是否存在使用'to'的隐式计数器?

Rex*_*err 9

for实际上是应用一堆集合方法的简写.特别是,如果您不使用yield,则for选择器中的每个语句都将转换为foreach.所以

for (i <- 1 to 3; j <- 1 to 4) f(i,j)
Run Code Online (Sandbox Code Playgroud)

变成

(1 to 3).foreach{ i => (1 to 4).foreach{ j => f(i,j) } }
Run Code Online (Sandbox Code Playgroud)

foreach是一个关于所有集合的方法 - Range包括在内,它1 to 3变成了 - 它循环遍历集合中的每个项目,每次都调用一个提供的函数.A Range的项目是列出的数字(在这种情况下包括端点) - 实际上,Range实际上并不是将数字存储在单独的列表中,因此它的主要目的恰恰是为了保持这种迭代的数字范围.