E4103

E4103#

此循环提供了错误的模式数量。

这个错误发生在循环中的模式数量与循环参数数量不匹配时。在循环构造中,每一个都必须有与循环参数数量相同的模式数量。

例如,如果一个循环有 2 个参数,那么每一个都必须有 2 个模式来匹配这些参数。模式数量不足或过多都会触发此错误。

错误示例#

pub fn f(x: Int, y: Int) -> Int {
  loop x, y {
    0, 0 => 0
    a => continue a - 1, 0
//  ^ Error: This loop has 2 arguments, but 1 patterns are supplied
  }
}

建议#

要修复此错误,请确保循环中的每一个都有正确数量的模式来匹配循环参数。例如:

pub fn f(x: Int, y: Int) -> Int {
  loop x, y {
    0, 0 => 0
    a, b => continue a - 1, b - 1
  }
}