Rust 中 Mod 和 Use 的区别
Rust 是一种现代且快速的编程语言,旨在成为一种安全、并发和功能性的系统编程语言。它由 Mozilla 于 2006 年创建。
Rust 有三个主要概念:所有权、借用和生命周期。Rust 使用两个关键字:use
和 mod
。
关键字 use
用于将模块的内容导入当前范围。这意味着它将使模块中的所有函数都可以从此时开始调用。
另一方面,mod
仅将另一个模块中的单个项目导入当前范围,因此可以根据需要调用或引用它,而不必担心从现在开始可以访问该模块中的任何其他内容。
Rust 中的 use
概念
通过追求不同的路径,use
将另一个项目添加到当前命名空间。项是你需要访问的通用对象,例如函数、结构或特征。
路线是你必须遵循的模块层次结构才能到达它。当前命名空间是指将对象带入当前文件,以便你可以像访问本地一样访问它。
Rust 中 use
的特点
Rust 为用户提供了一种相当动态的机制,可以轻松地将许多对象引入现有的命名空间,而无需付出任何努力。
-
你可以使用
self
关键字将通用父模块和你想要使用的任何其他东西引入命名空间。 -
为避免身份问题,请使用
as
关键字进行更改。 - 你可以使用类似 glob 的语法将多个对象带入当前命名空间:
use std::path::{self, Path, PathBuf};
Rust 中的 mod
概念
模块允许你将代码组织到单独的文件中。它们将你的代码划分为可以在其他模块或程序中导入和使用的逻辑部分。
简而言之,mod
用于指定模块和子模块,以便你可以在当前的 .rs
文件中使用它们,这可能很复杂。为什么不直接使用它?
Rust 中的模块只不过是零个或多个事物的容器。这是一种逻辑组织项目的方法,因此你的模块可以轻松遍历。
模块可用于创建 crate 的树结构,使你能够在必要时将工作拆分到任意深度的多个文件中。单个 .rs
文件可以包含多个模块,或者单个文件可以包含多个模块。
最后,你可以使用 mod
对对象进行逻辑分组。你可以在单个 .rs
文件中构建 mod
块,或者你可以将源代码划分为多个 .rs
文件,使用 mod
,并让 Cargo 生成你的 crate 的树结构。
Rust 中 mod
和 use
的基本区别
它们之间的主要区别在于 use
从外部库导入模块,而 mod
创建只能在当前文件中使用的内部模块。
让我们讨论一个使用 use
关键字的示例。
use hello::rota::function as my_function;
fn function() {
println!("demo `function()`");
}
mod hello {
pub mod rota {
pub fn function() {
println!("demo `hello::rota`");
}
}
}
fn main() {
my_function();
println!("Coming");
{
use crate::hello::rota::function;
function();
println!("Returning");
}
function();
}
输出:
demo `hello::rota`
Coming
demo `hello::rota`
Returning
demo `function()`
点击这里查看上述代码的演示。
相关文章
Rust 中 Rc::clone(&rc) 和 rc.clone() 的区别
发布时间:2023/03/21 浏览次数:103 分类:编程语言
-
本教程是关于 Rust 中 Rc::clone(&rc) 和 rc.clone() 之间的区别。