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