08 rust基础module 模块

news/2025/1/24 11:48:03/文章来源:https://www.cnblogs.com/learnForLife/p/18689342

Rust 中的模块(Module)

模块(Module) 是 Rust 中用来组织代码的主要工具,它允许你将代码划分为多个逻辑单元,从而提高可读性和可维护性。模块可以包含函数、结构体、枚举、常量、trait 等,也可以嵌套子模块。


模块的定义与使用

1. 模块的定义

可以使用 mod 关键字定义一个模块:

mod my_module {pub fn greet() {println!("Hello from my_module!");}
}

这里的 my_module 是模块的名字。

2. 使用模块

模块内部的内容默认是私有的,需要通过 pub 关键字公开后才能在模块外访问:

mod my_module {pub fn greet() {println!("Hello from my_module!");}
}fn main() {my_module::greet(); // 调用模块中的函数
}

3. 嵌套模块

模块可以嵌套,也可以通过路径访问:

mod outer_module {pub mod inner_module {pub fn greet() {println!("Hello from inner_module!");}}
}fn main() {outer_module::inner_module::greet();
}

模块的文件结构

单文件模块

所有代码可以写在一个文件里,用 mod 定义模块。

多文件模块

当代码量较大时,可以将模块拆分为多个文件。

例如:

  1. 创建 main.rs

    mod my_module;fn main() {my_module::greet();
    }
    
  2. 创建 my_module.rs 文件:

    pub fn greet() {println!("Hello from a separate file!");
    }
    

这样,my_module 模块的实现就放在了单独的文件中。

模块目录结构

如果模块有子模块,可以使用目录结构。例如:

src/
├── main.rs
├── outer_module/
│   ├── mod.rs
│   └── inner_module.rs
  • outer_module/mod.rs 文件定义 outer_module 模块。
  • outer_module/inner_module.rs 定义子模块 inner_module

使用 use 简化模块路径

1. 引入模块路径

使用 use 可以将模块路径引入当前作用域,简化访问:

mod my_module {pub fn greet() {println!("Hello!");}
}use my_module::greet;fn main() {greet(); // 不需要写 my_module::greet
}

2. 重命名

可以通过 as 重命名模块路径:

mod my_module {pub fn greet() {println!("Hello!");}
}use my_module::greet as say_hello;fn main() {say_hello(); // 使用重命名后的路径
}

3. 引入多个内容

用大括号引入多个模块内容:

mod my_module {pub fn greet() {println!("Hello!");}pub fn farewell() {println!("Goodbye!");}
}use my_module::{greet, farewell};fn main() {greet();farewell();
}

常见模块相关关键字

  • mod: 定义模块。
  • pub: 将模块的内容公开。
  • use: 引入模块路径到当前作用域。
  • super: 引用父模块。
  • self: 引用当前模块。

总结

  1. 模块的作用

    • 组织代码,提高可读性和复用性。
    • 封装实现,暴露公共接口。
  2. 文件与模块的关系

    • 模块可以拆分为多个文件,文件名和模块名一致。
    • 使用文件夹管理模块可以构建复杂的项目结构。
  3. 模块的访问

    • 默认私有,使用 pub 公开。
    • 使用 use 简化路径访问。

Rust 的模块系统帮助开发者更好地组织和管理代码,是编写高质量、可维护代码的重要工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/874679.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# Odbc Informix读取中文方法

一。 部署好informix服务器后 二。 在windows主机安装好Informix Client-SDK, 这个软件客户端时免费的,可以在官网下载 三。配置好ODBC连接 1.用户名密码服务端口自行填写 2.关于客户语言的配置要使用以下参数: Client Locale -> en_US.CP1252 Database Locale -> en_…

ToDesk远程连接几项模式区别何在?

对于很多用过ToDesk远程控制软件进行随时随地跨系统、跨设备操作的小伙伴们来说,它无疑能解决做种场景下问题,无论是在职场工作中,还是日常生活中,均能带来很多便捷!虽然轻松使用很简单,但很多所不知道的是其实应对不同的情况,选择不同的连接模式更有益!以下木木小编就…

如何在网站后台修改首页?

修改网站后台首页通常涉及对后台管理界面的调整。以下是详细步骤:登录后台:使用管理员账号登录网站后台管理系统。 进入模板管理:在后台管理系统中找到“模板管理”或“模板文件管理”选项。 编辑模板文件:找到后台首页的模板文件(如index.htm或index.php),使用代码编辑…

一些关于软件测试中登录模块的测试用例

以下是一份针对软件测试中登录模块较为完整的测试用例,涵盖了各种常见情况,尽量保证较高的覆盖率:一、功能测试1. 正常登录 2. 用户名错误 3. 密码错误 4. 用户名和密码都错误 5. 用户名和密码为空 6. 仅用户名为空 7. 仅密码为空 8. 用户名和密码长度极限值 9. 记住用户名…

如何修改网站管理员admin的信息?

登录网站后台:使用管理员账号(通常是admin)登录到网站的后台管理界面。进入用户管理页面:在后台管理界面中,找到“用户”、“用户管理”或类似的菜单选项,点击进入用户管理页面。找到管理员账号:在用户管理页面中,找到管理员账号(通常是admin),点击账号名称或编辑按…

如何在网站上修改源代码?

要在网站上修改源代码,您可以按照以下步骤进行操作:确定要修改的代码:确定您想要修改的网站源代码文件。 找到代码文件:根据您的网站结构,找到包含要修改代码的文件。 编辑代码文件:使用文本编辑器或专业的网页设计工具,编辑代码文件中的代码。 保存修改:修改完成后,保…

如何在CMS系统中动态修改网站栏目?

在CMS系统中动态修改网站栏目通常涉及后台管理界面的操作。以下是详细步骤:登录后台:使用管理员账号登录CMS后台管理系统。 进入栏目管理:在后台管理系统中找到“栏目管理”或“频道管理”选项。 编辑栏目:选择需要修改的栏目,进行编辑。可以更新栏目名称、描述、排序等信…

补充篇:Unity中Compute Shader的基本使用

补充篇:Unity中Compute Shader的基本使用 Compute Shader 可以充分利用GPU来帮助我们处理大规模的并行任务。虽然名字带Shader,但它可不光用于图形学,所以即便对渲染相关的知识不甚了解,也不妨碍学习它的用法。 基本流程 对任意 Project的文件夹右键Create/Shader/Compute …

修改网站首页大图通常涉及到更新网站首页的图片文件

找到图片文件:首先需要找到网站首页大图的图片文件所在的位置。通常,网站的图片文件会存储在服务器的特定目录中,例如 images 目录。 备份原图片:在修改之前,建议先备份原图片,以防修改过程中出现问题需要恢复。 准备新图片:准备好要替换的新图片,确保新图片的尺寸和格…

怎样修改网站公司名称

修改网站公司名称通常涉及到更新网站的标题、版权信息、联系方式等相关内容。以下是一些常见的方法:网站标题修改:在网站的HTML代码中,找到 <title> 标签,并将其中的公司名称修改为新的名称。例如: <title>新公司名称 - 网站首页</title>版权信息修改:…

改图标网站设计图排版

修改图标网站设计图排版可以从以下几个方面入手:确定排版风格:根据网站的整体风格和定位,确定图标的排版风格,如对齐方式、间距、大小比例等。 调整图标位置:使用设计工具(如Adobe Photoshop、Sketch等)打开设计图,将图标拖动到合适的位置,确保布局合理、美观。 统一图…

ESP32-WebOTA

esp32网页ota设计参考前言 在 ESP32 设备连接上 WiFi 后均获获得 WiFi 设备分配的一个 IP 地址,在同一网络的设备当中即可访问此 IP 地址,而我们既可以通过 ESP32 中的 HTML 服务访问建立在上面的网页,并且可以通过网页来实现对于 ESP32 的交互。 接下来主要介绍如何通过网页…