rust笔记14:mod和use的使用区别

devtools/2025/3/20 1:21:46/

在 Rust 中,mod 是一个关键字,用于定义模块(module)。模块是 Rust 中组织代码的基本单元,它可以帮助你将代码分割成更小的、可重用的部分,同时控制代码的可见性(通过 pub 关键字)。

mod 的主要作用

  1. 组织代码

    • 模块允许你将相关的代码组织在一起,形成一个逻辑单元。
    • 例如,可以将与网络相关的代码放在 network 模块中,与文件操作相关的代码放在 file 模块中。
  2. 控制可见性

    • 默认情况下,模块中的项(如函数、结构体、枚举等)是私有的,只能在模块内部访问。
    • 使用 pub 关键字可以将模块中的项公开,使其可以在模块外部访问。
  3. 命名空间管理

    • 模块为代码提供了命名空间,避免了命名冲突。
    • 例如,两个模块中可以定义同名的函数,但它们不会冲突,因为它们属于不同的命名空间。
  4. 代码复用

    • 模块可以被其他模块或文件引用,从而实现代码的复用。

mod 的基本用法

1. 定义模块

在 Rust 中,可以使用 mod 关键字定义一个模块。模块可以包含函数、结构体、枚举、常量、其他模块等。

rust">mod network {pub fn connect() {println!("Connecting to the network...");}
}fn main() {network::connect(); // 调用模块中的函数
}
2. 模块的可见性

默认情况下,模块中的项是私有的。如果需要从模块外部访问,需要使用 pub 关键字。

rust">mod network {pub fn connect() {println!("Connecting to the network...");}fn private_function() {println!("This is private");}
}fn main() {network::connect(); // 可以访问// network::private_function(); // 错误:private_function 是私有的
}
3. 嵌套模块

模块可以嵌套,形成层次化的结构。

rust">mod network {pub mod tcp {pub fn connect() {println!("Connecting via TCP...");}}pub mod udp {pub fn connect() {

http://www.ppmy.cn/devtools/168494.html

相关文章

路由器安全研究:D-Link DIR-823G v1.02 B05 复现与利用思路

前言 D-Link DIR-823G v1.02 B05存在命令注入漏洞,攻击者可以通过POST的方式往 /HNAP1发送精心构造的请求,执行任意的操作系统命令。 漏洞分析 binwalk提取固件,成功获取到固件。 现在我们已经进入到应用里了,那么我们在进行分析…

CVE-2018-2628(使用 docker 搭建)

介绍: 是一个影响 Oracle WebLogic Server 的严重漏洞,属于 远程代码执行(RCE) 漏洞。以下是对该漏洞的详细分析: ● 漏洞类型: 远程代码执行(RCE) ● 影响范围:Oracle WebLogic Server 10.3.6.0, 12.1.3.0, 12.2.1.2…

jmeter-sample

jmeter-sample http request:接口测试常用请求参数ParametersBody DataFiles Upload jdbc request配置JDBC Connection Configuration创建JDBC Requst请求 http request:接口测试常用 请求参数 Parameters 常见于get请求,与拼在接口后面是一样的效果:如…

Redis hyperloglog学习

背景知识 【伯努利试验】: 【伯努利试验】是一个概率论中的概念,指在相同的条件下重复进行n次独立的试验,每次试验只有两种可能的结果,且这两种结果发生的概率是固定的 抛硬币作为伯努利试验:在抛硬币时,我…

MySQL原理:逻辑架构

目的:了解 SQL执行流程 以及 MySQL 内部架构,每个零件具体负责做什么 理解整体架构分别有什么模块每个模块具体做什么 目录 1 服务器处理客户端请求 1.1 MySQL 服务器端逻辑架构说明 2 Connectors 3 第一层:连接层 3.1 数据库连接池(Conn…

app.config.globalProperties

目录 一:基础使用 1、简介 2、使用 3、打印结果: 二:封装 1、创建一个.ts文件(utils/msg.ts) 2、在main.ts中全局注册 3、在页面中使用 4、打印结果 一:基础使用 1、简介 app.config.globalProperties 是 Vue 3 应用实例(app)的一个配置属性&…

【Node.js入门笔记4---fs 目录操作】

Node.js入门笔记4 Node.js---fs 目录操作一、目录操作1.fs.mkdir():创建目录。异步,非阻塞。创建单个目录创建多个目录创建目前之前需要确认是否存在: 2. fs.mkdirSync():用于创建一个新的目录。异步,非阻塞。3.fs.rmd…

Oracle转化为MySQL数据库

使用HttpClient调用Post方法的时候,EntityUtils.toString(response.getEntity()); 响应数据只能读取一次,读取多次会出现,Attempted read from closed stream错误。Oracle转化为MySQL数据库 OracleMySQLORDER BY CREATED_TIME DESC NULLS LA…