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

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

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

mod 的主要作用

  1. 组织代码

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

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

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

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

mod 的基本用法

1. 定义模块

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

mod network {
   
    pub fn connect() {
   
        println!("Connecting to the network...");
    }
}

fn main() {
   
    network::connect(); // 调用模块中的函数
}
2. 模块的可见性

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

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. 嵌套模块

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

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

    pub mod udp {
   
        pub fn connect() {
   
   

相关文章:

  • 学习笔记 ASP.NET Core Web API 8.0部署到iis
  • PAT甲级(Advanced Level) Practice 1022 Digital Library
  • browser_use 自动化浏览器agent使用案例
  • 使用BLSTM自动评估句子级构音障碍的可理解性
  • checkpoint机制
  • IntelliJ IDEA 中 Maven 的 `pom.xml` 变灰带横线?一文详解解决方法
  • MyBatis-Plus防全表更新与删除插件BlockAttackInnerInterceptor
  • 第十六届蓝桥杯康复训练--4
  • Mysql的库操作
  • 全面解析 HTML 标签:简写与全称及其应用
  • 在Django模型中的Mysql安装
  • TCP/IP协议栈----通俗易懂(与OSI七层模型区别)
  • Qt介绍自定义插件四
  • 在 Unity 中判断 Xbox 手柄是否连接
  • 基于深度学习的皮肤癌智能检测与语音提示系统【python源码+Pyqt5界面+数据集+训练代码】
  • SSM框架——Spring面试题
  • 【链表世界的深度探索:从基础到高阶的算法解读】—— LeetCode
  • unreal engine5 mation warping使用,敌人受击后面向攻击者
  • 【MySQL基础-9】深入理解MySQL中的聚合函数
  • 解释 TypeScript 中的枚举(enum),如何使用枚举定义一组常量?
  • 李强:把做强国内大循环作为推动经济行稳致远的战略之举
  • 马上评|这种“维权”已经不算薅羊毛,涉嫌犯罪了
  • 欠债七十万后,一个乡镇驿站站长的中年心事
  • 当番茄霸总遇上晋江古言,短剧IP小变局
  • 俄官员说将适时宣布与乌克兰谈判代表
  • 走进“双遗之城”,领略文武风采:沧州何以成文旅新贵