E4133

E4133#

for .. in 循环有错误的循环变量数量。

MoonBit 仅支持 for .. in 循环中的一个或两个循环变量。

  • 一个循环变量用于可迭代内容。

  • 两个循环变量分别用于索引和可迭代内容。

错误示例#

pub fn bad_loop() -> Unit {
  for a, b, c in [1, 2, 3] { // Error: This `for .. in` loop has 3 loop variables, but at most 2 is expected.
    println("\{a}, \{b}, \{c}")
  }
}

建议#

如果您想同时迭代索引和可迭代内容,您可以使用两个循环变量:

pub fn iterate_with_index() -> Unit {
  for i, v in [1, 2, 3] {
    println("\{i}: \{v}")
  }
}

如果您想迭代元组的可迭代内容,那么您需要在循环体中显式解构元组:

pub fn iterate_tuples() -> Unit {
  for v in [(1, 2, 3), (4, 5, 6)] {
    let (a, b, c) = v
    println("\{a}, \{b}, \{c}")
  }
}