E4068

E4068#

Main 函数已经定义。

在 MoonBit 中,一个 main 包包含一个 main 函数,作为程序的入口点。因此,您不能在 main 包中定义多个 main 函数。如果您希望将多个程序构建为单独的二进制文件,则可以在同一个模块中使用多个 main 包。

错误示例#

假设在包 main 中:

main/moon.pkg.json:

{
  "is-main": true
}

main/main.mbt:

fn main {
  println("Hello, World!")
}

fn main { // Error: Main function is already defined at ...
  println("Hello, World! Again!")
}

建议#

你可以删除额外的 main 函数:

fn main {
  println("Hello, World!")
}
// Remove the extra main function
//- fn main {
//-   println("Hello, World! Again!")
//- }

或者你可以将额外的 main 函数移到另一个包中,比如 main2:

main2/moon.pkg.json:

{
  "is-main": true
}

main2/main.mbt:

fn main {
  println("Hello, World! Again!")
}

同时保留 main/main.mbt 只包含一个 main 函数:

fn main {
  println("Hello, World!")
}