E4037#
无法完成操作:包未导入。
错误示例:#
在 main/main.mbt
中,我们试图调用 @middle
中的一个函数:
fn main {
let a = @middle.return_Obj().m()
}
在 middle/middle.mbt
中,我们定义了一个函数,返回了一个在 @ty
中定义的特征 Obj
的对象:
pub fn return_Obj() -> &@ty.Obj {
@ty.T(42)
}
在 ty/ty.mbt
中,我们定义了一个特征 Obj
和一个实现它的类型 T
:
pub(all) type T Int
pub fn f(self: T) -> Unit {
println(self._)
}
pub(open) trait Obj {
f(Self) -> Unit
}
但是在 main/moon.pkg.json
中没有提到 @ty
:
{
"import": ["<PACKAGE>/middle"]
}
这会在 main/main.mbt
的第 2 行报错:
无法调用类型为 &@<PACKAGE>/ty.Obj 的方法:包 @<PACKAGE>/ty 未导入。
建议#
确保所有相关的包都已经导入。
在上面的示例中,这意味着在 main/moon.pkg.json
中导入 @middle
和 @ty
:
{
"import": ["<PACKAGE>/middle", "<PACKAGE>/ty"]
}