// This is src/main.rs
mod subfolder1 {
pub mod subsubfolder {
pub mod file1;
}
pub mod file1;
pub mod file2;
}
mod subfolder2 {
pub mod file1;
}
要从子模块导入函数,您需要使用use关键字和根目录的完整模块路径:
// This can be any file
use crate::subfolder1::file1::fn1;
use crate::subfolder1::file2::fn2;
use crate::subfolder1::subsubfolder::file1::nestedfn;
use crate::subfolder2::file1::otherfn;
3条答案
按热度按时间jchrr9hc1#
子文件夹必须声明为模块。你可以用三种不同的方法来做到这一点:
main.rs
中声明sorting_algorithms
模块:在我看来这是最简单的。
sorting_algorithms.rs
放入src
文件夹中,并使用模块声明:mod.rs
文件放入子文件夹。建议不要这样做,因为使用多个mod.rs
文件可能会造成混乱。cczfrluj2#
Rust只会在你添加
mod.rs
文件的时候将src的子文件夹识别为模块。将其添加到sorting_algorithms文件夹:mod.rs文件可以公开此文件夹的子模块:
假设函数
bubble_sort
被声明为public(pub fn bubble_sort(...)
),您将能够从www.example.com使用它main.rs:gk7wooem3#
Rust中的模块可以帮助您以清晰和逻辑的方式构建代码。
让我们假设你的项目中有一个像这样的文件结构:
并且您希望使用
main.rs
文件的子文件夹中的文件中定义的函数。要做到这一点,您可以直接在
main.rs
文件中使用带花括号的mod
关键字将子文件夹声明为模块,并列出其中的子模块:要从子模块导入函数,您需要使用
use
关键字和根目录的完整模块路径:这种方法有一些优点:
mod.rs
的文件。和可能的缺点:
pub mod
关键字和花括号,这会使它很难阅读和编辑。总之,这种方法是在Rust中使用模块而不创建任何额外文件的方法之一。它有一些优点和缺点,这取决于您的偏好和项目结构。您可以选择最适合您需要的一个,或者尝试其他方法,例如创建与模块同名的文件(
subfolder.rs
),或者在子文件夹中创建mod.rs
文件。