如何从子模块“导出”东西?

bfops

我想写一个mod.rs像这样文件:

pub use foo::*;

mod foo;
pub mod bar;

但是我得到了错误正确的方法是什么?unresolved import foo

谢泼玛特

是您的问题MCVE

pub mod sub {
    use foo::function;

    pub mod foo {
        pub fn function() {}
    }
}

fn main() {}

正如Adrian提到的,解决方案是selfuse语句中使用关键字

pub mod sub {
    use self::foo::function;

    pub mod foo {
        pub fn function() {}
    }
}

fn main() {}

发生什么了?Rust编程语言描述了该问题:

self呢?好吧,默认情况下,使用声明是绝对路径,从板条箱根开始。self使该路径相对于您当前在层次结构中的位置。

也就是说,use foo意味着foo从箱子的根部使用use self::foo装置使用foo相对于当前模块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章