如何从src子文件夹中的文件导入?

时间:2019-11-19 14:05:38

标签: import rust

我想将代码拆分为src的多个子目录。示例:

src
  main.rs
  sorting_algorithms
    bubble.rs

bubble.rs包含函数bubble_sort;如何将其导入main.rs?

2 个答案:

答案 0 :(得分:2)

仅当您向其中添加mod.rs文件时,Rust才会将src的子文件夹识别为模块。将其添加到sorting_algorithms文件夹:

src
  main.rs
  sorting_algorithms
    bubble.rs
    mod.rs

mod.rs文件可以公开此文件夹的子模块:

pub mod bubble;

假设函数bubble_sort被声明为公共(pub fn bubble_sort(...)),则可以从main.rs中使用它:

mod sorting_algorithms;
pub use sorting_algorithms::bubble::bubble_sort;

答案 1 :(得分:2)

必须将子文件夹声明为模块。您可以使用3种不同的方式来做到这一点:

  • 内联:在sorting_algorithms中声明main.rs模块:

    // In main.rs:
    
    mod sorting_algorithms {
        pub mod bubble;
    }
    

    我认为这是最简单的。

  • 使用模块声明将sorting_algorithms.rs放入src文件夹中:

    // In sorting_algorithms.rs:
    
    pub mod bubble;
    
  • 将具有上述内容的mod.rs文件放入子文件夹。或多或少不推荐使用此方法。