如何在Rust货运项目中使用另一个模块中的一个模块?

用户名

有很多关于使用模块的Rust文档,但是我还没有找到一个包含多个模块的Cargo二进制示例,其中一个模块使用另一个模块。我的示例在src文件夹中有三个文件。模块a和b处于同一级别。一个不是另一个的子模块。

main.rs:

mod a;

fn main() {
    println!("Hello, world!");
    a::a();
}

a.rs:

pub fn a() {
    println!("A");
    b::b();
}

和b.rs:

pub fn b() {
    println!("B");
}

我已经尝试过a.rsuse b及其mod b内部的变体,但是无法编译此代码。use b例如,如果尝试使用,则会出现以下错误:

 --> src/a.rs:1:5
  |
1 | use b;
  |     ^ no `b` in the root. Did you mean to use `a`?

使Rust识别出我想在货运应用程序中使用模块a中的模块b的正确方法是什么?

原正树

您必须在b.rs某处添加一个,通常使用mod b;如果ba(而不是的兄弟姐妹a的子代,则有两种方法可以实现:

  • 推荐:重命名a.rsa/mod.rsb.rsa/b.rs然后,您可以mod b;进入a/mod.rs
  • 取而代之的是,你可以#[path = "b.rs"] mod b;a.rs不重新命名的来源。

如果b打算成为的兄弟姐妹a(而不是的子代a),则可以在mod b;main.rs,然后use crate::b;在中a.rs

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在java中的另一个项目中使用一个项目中的类?

如何在entryComponents另一个模块中使用模块中的组件?

如何在另一个项目作为一个模块使用一个项目?

Azure DevOps使用其他项目中另一个存储库中的模块

如何在另一个模块中使用服务/模块?

如何在另一个模块中使用“ GOPATH”之外的模块?

Angular 4如何在同级模块组件中使用另一个模块组件

如何在Fortran中使用包含另一个模块的模块?

如何在另一个模块中使用一个模块并在 angular 8 中路由它?

如何在另一个模块中使用一个模块的控制器?

如何在 Spring Boot Maven 多模块项目中包含来自另一个模块的资源

如何在Android的另一个模块中访问一个模块的视图?

如何在liferay 7中的liferay模块项目中从一个portlet的jsp重定向到另一个portlet的jsp

如何在另一个Maven项目中使用一个Maven项目的属性

如何包含来自同一项目中另一个文件的模块?

如何在Maven项目中将spring-context从一个子模块导入到另一个子模块?

如何在另一个自定义模块中使用一个自定义模块中的功能

如何在另一个项目中使用一个site.master?

如何在IntelliJ IDEA中使用另一个项目中的类?

如何在另一个项目中使用 crate 使其不再编译?

如何在另一个php项目中使用laravel路由系统?

如何在另一个模块中使用事件发射器?

如何在angularjs的另一个工厂中使用模块功能

如何在除 main.rs 之外的另一个文件中使用模块

在Azure DevOps存储库中的另一个项目中签出子模块

如何从另一个Angular项目加载模块?

在另一个模块中使用一个Shiny模块的变量值

在Terraform的另一个模块中使用一个模块局部变量

Terraform:在另一个模块中使用一个模块的输出