E4069#
非 main 包中出现 main
函数。
在 MoonBit 中,包分为两类:主包和非主包。非主包通常用作库,为其他包提供功能。另一方面,主包是程序的入口点。因此,非主包不应该包含 main
函数。
有时,人们使用 main
函数进行测试。在这种情况下,我们建议使用测试块来编写测试,而不是使用 main
函数。有关更多信息,请参阅 MoonBit 文档的 测试部分。
错误示例#
假设在包 lib
中:
lib/moon.pkg.json
:
{} // "is-main" is by default false
lib/lib.mbt
:
fn main { // Error: Unexpected main function in the non-main package.
println("Hello, world!")
}
建议#
您可以从非主包中删除 main
函数:
// Remove the main function
//- fn main {
//- println("Hello, world!")
//- }
或者,您可以通过在包配置文件中将 "is-main"
设置为 true
来将包设置为主包。
lib/moon.pkg.json
:
{
"is-main": true
}
你也可以将 main
函数移动到另一个包中,比如 main
:
main/moon.pkg.json
:
{
"is-main": true
}
main/main.mbt
:
fn main {
println("Hello, world!")
}