【模块化编程】是指将计算机程序的功能分离成独立的、可相互作用的“模块”的软件设计概念,每个模块都包含着执行一个预期功能的代码,复杂的系统被分割为小块的独立代码块。

 

Rust中代码模块化组织形式从大到小分为3类:

1. Package(包)

2. Crate(箱)

3. Module(模块)

 

Package 用于管理一个或多个 Crate(使用Cargo new命令就可以创建一个包);

Crate 是 Rust 的最小编译单元,即 Rust 编译器是以 Crate 为最小单元进行编译的。Crate 在一个范围内将相关的功能组合在一起,并最终通过编译生成一个二进制或库文件。

Module 允许我们将一个 Crate 中的代码组织成独立的代码块,以便于增强可读性和代码复用。同时,Module 还控制代码的可见性,即将代码分为公开代码和私有代码。

 

可见性修饰符:

pub: 成员对模块可见
pub(self): 成员对模块内的子模块可见
pub(crate): 成员对整个 crate 可见

 

示例代码:

mod test {
    pub const MSG: &str = "Hello World!";
    pub(self) const NUM: u32 = 32;

    pub(crate) enum CrateNum {
        Item = 4
    }
    
    pub mod inner {
        pub fn say() {
            println!("{}", super::NUM);
        }
    }
}

fn main() {
    println!("{}", test::MSG);
    println!("{}", test::CrateNum::Item as u32);
    test::inner::say();
}

 

原文地址:http://www.cnblogs.com/fanqshun/p/16929148.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性