Module “我该怎么做?”;“出口”;来自子模块的东西?
我想写一个Module “我该怎么做?”;“出口”;来自子模块的东西?,module,rust,Module,Rust,我想写一个mod.rs文件,比如: pub use foo::*; mod foo; pub mod bar; 但是我得到了错误未解析导入foo。正确的方法是什么?以下是您的问题: pub mod sub { use foo::function; pub mod foo { pub fn function() {} } } fn main() {} 如前所述,解决方案是在use语句中使用关键字self: pub mod sub { use
mod.rs
文件,比如:
pub use foo::*;
mod foo;
pub mod bar;
但是我得到了错误未解析导入foo
。正确的方法是什么?以下是您的问题:
pub mod sub {
use foo::function;
pub mod foo {
pub fn function() {}
}
}
fn main() {}
如前所述,解决方案是在use
语句中使用关键字self
:
pub mod sub {
use self::foo::function;
pub mod foo {
pub fn function() {}
}
}
fn main() {}
那么,发生了什么事?描述问题:
那自我呢?默认情况下,use声明是绝对路径,从板条箱根开始self
将该路径改为相对于层次结构中的当前位置
也就是说,use foo
意味着从板条箱的根部使用foo
use self::foo
意味着相对于当前模块使用foo
。可以将foo.rs
内联到mod.rs
,然后让所有其他模块(例如bar
)引用foo
的内容,方法是使用super::[thing]
,但这似乎很笨拙,尤其是在导出多个模块的内容时。就像你写的那样。我将模块主体内联定义为空,因为您的示例没有。也许你需要改进你失败的例子以产生一个有效的?但要将它嵌入到另一个子模块中。