我有3个文件:lib.rs,file2.rs和file3.rs.我lib.rs我有这个:
mod file2;
use file2::Struct2;
Run Code Online (Sandbox Code Playgroud)
它运作良好.但是,在file3中执行相同的操作会编译并出现错误:
mod file2;
use file2::Struct2;
=> error: cannot declare a new module at this location
Run Code Online (Sandbox Code Playgroud)
如果我删除mod file2声明我得到这个:
error: unresolved import `Struct2`
Run Code Online (Sandbox Code Playgroud)
这有什么问题?
我不确定你为什么会完全得到这个错误,但这不会做你想要的.模块形成树结构,您使用mod声明来形成它们.所以你试图在file3中创建另一个file2 mod.
我猜你想要file2和file3都在主模块下,而不是彼此的子模块.要做到这一点,放
mod file2;
mod file3;
Run Code Online (Sandbox Code Playgroud)
在lib.rs中,然后在file3.rs中
use file2::Struct2;
Run Code Online (Sandbox Code Playgroud)
它应该都有效.我在移动设备上,所以我不能对自己进行三重检查,抱歉格式化.
| 归档时间: |
|
| 查看次数: |
1439 次 |
| 最近记录: |