E0018

E0018#

在这个循环表达式中没有 continue,因此 loop 在这里是无用的。

当使用一个不包含 continue 语句的 loop 表达式时,将会出现这个错误。在 MoonBit 中,一个不包含任何 continue 语句的 loop 相当于一个只执行一次的块表达式,使得在这种情况下 loop 关键字是多余的。如果你需要从头重新开始循环,你应该添加一个 continue 语句,或者使用一个更简单的控制流结构,如 matchif

错误示例#

///|
fn main {
  let count = 2
  loop count {
    _..<0 => break
    _ => println(count)
  }
}

Output:

2

建议#

如果你需要重新开始循环,添加一个 continue 语句:

///|
fn main {
  let count = 2
  loop count {
    _..<0 => break
    count => {
      println(count)
      continue count - 1
    }
  }
}

Output:

2
1
0

或者如果不需要使用 continue,使用 if/match

///|
fn main {
  let count = 2
  match count {
    _..<0 => ()
    _ => println(count)
  }
}

Output:

2