我想写一个mod.rs
文件,如:
pub use foo::*;
mod foo;
pub mod bar;
但我收到错误unresolved import
。这样做的正确方法是什么?foo
答案 0 :(得分:1)
以下是您问题的MCVE:
pub mod sub {
use foo::function;
pub mod foo {
pub fn function() {}
}
}
fn main() {}
作为Adrian mentions,解决方案是在self
语句中使用关键字use
:
pub mod sub {
use self::foo::function;
pub mod foo {
pub fn function() {}
}
}
fn main() {}
那么,发生了什么? The Rust Programming Language描述了问题:
self
怎么样?嗯,默认情况下,使用声明是绝对路径,从您的包根开始。self
使该路径相对于层次结构中的当前位置。
也就是说,use foo
表示从包的根目录中使用foo
。 use self::foo
表示相对于当前模块使用foo
。