E4106#
for 循环步骤中存在未知绑定器。这些步骤中的绑定器必须在 for 循环的初始化块中声明。
如果 for 循环的更新表达式(步骤)中使用的变量名未在该循环的初始化块中声明,则会发生此错误。在 for 循环中,您只能在更新表达式中使用先前在初始化循环时声明的变量。
错误示例#
pub fn f(x: Int) -> Unit {
let mut j = 0
for i = 0; i < x; i = i + 1, j = j + 1 {
// ^ --- Error: Unknown binder j in the for-loop
// steps. Binders in the steps must be
// declared in the initialization
// block of the for-loop.
println(i)
println(j)
}
}
建议#
To fix this error, you can
在 for 循环的初始化块中声明变量
j
。例如,
pub fn f(x: Int) -> Unit {
for i = 0, j = 0; i < x; i = i + 1, j = j + 1 {
println(i)
println(j)
}
}
从更新表达式中删除变量
j
。例如,
pub fn f(x: Int) -> Unit {
let mut j = 0
for i = 0; i < x; i = i + 1 {
println(i)
println(j)
j = j + 1
}
}