当前位置: 首页 > news >正文

Rust 语言的“命名空间” —— mod

在Rust中,虽然没有像C++中的namespace这样的显式关键字,但是Rust通过模块(mod)系统提供了一种类似命名空间的功能。模块允许你将相关的代码组织在一起,并可以通过pub关键字来控制哪些项(如函数、结构体、枚举等)是公开的,即可以从模块外部访问的。

Rust的模块系统不仅提供了代码的组织方式,还实现了代码的封装和隐私控制。你可以在一个模块中定义多个函数、结构体、枚举等,并只公开你希望外部能够访问的部分。这样,模块就起到了类似命名空间的作用,将相关的代码隔离开来,并控制其可见性。

下面是一个简单的例子,展示了如何在Rust中使用模块来组织代码:

// lib.rs
mod my_module {// 这是一个私有函数,只能在my_module内部访问fn private_function() {println!("This is a private function.");}// 这是一个公开函数,可以在my_module外部访问pub fn public_function() {println!("This is a public function.");}// 还可以嵌套子模块pub mod nested_module {pub fn nested_function() {println!("This is a function in a nested module.");}}
}fn main() {// 可以访问my_module中的公开函数my_module::public_function();// 也可以访问嵌套模块中的公开函数my_module::nested_module::nested_function();// 下面的代码是错误的,因为private_function是私有的,无法在模块外部访问// my_module::private_function(); // 错误!这个函数是私有的。
}

在这个例子中,my_module就是一个模块,它包含了一个私有函数private_function和一个公开函数public_function。私有函数只能在模块内部被调用,而公开函数则可以在模块外部被调用。这提供了一种封装和隐藏实现细节的方式,类似于其他语言中的命名空间功能。

http://www.lryc.cn/news/349867.html

相关文章:

  • 加速科技突破2.7G高速数据接口测试技术
  • 从0开始搭建一个react项目 第一 二 三天
  • LSTM与GAN创新结合!模型性能起飞,准确率超98%
  • E2E测试学习
  • 基于死区补偿的永磁同步电动机矢量控制系统simulink仿真模型
  • GSCoolink GSV6125 替LT6711A HDMI2.0转Type-C/DP1.4
  • 【自然语言处理】【大模型】DeepSeek-V2论文解析
  • 前端面试题日常练-day10 【面试题】
  • conan2 基础入门(04)-指定编译器(gcc为例)
  • 谈谈std::map的lower_bound
  • 不知道代理IP怎么挑?一文带你了解挑选的关键点!
  • java 并发线程应用
  • Java面试八股文(SpringCloud篇)
  • PWRWER
  • 怎样恢复E盘里删了的文件夹,2024让EasyRecovery来帮你轻松恢复
  • OSPF实验
  • 喜茶·茶坊黑金首店入驻北京三里屯,率先引入珍稀娟姗奶制茶
  • C++(week3):数据结构与算法
  • ✅HTTPS和HTTP的区别是什么?
  • AIGC、LLM 加持下的地图特征笔记内容生产系统架构设计
  • 快速入门go语言学习笔记
  • MS41908M替代AN41908
  • Lc33---- 414. 第三大的数(java版)---排序(去重/复制到新数组)
  • OpenAI新模型GPT-4o“炸裂登场” 响应速度堪比真人 关键还免费!
  • C语言收尾 预处理相关知识
  • Python代码:二、多行输出
  • 前端内嵌iframe网页单点登录的三种方式
  • Git篇——Git提交指定文件编码
  • 在云服务器上运行StyleGAN3生成伪样本
  • 学习Nginx(三):命令与信号