Warning
这篇文章还未完成!
正文
随着程序规模越来越大,我们需要按照一定的逻辑去组织它们。Python 和 Rust 都已经提前设计好了应对这些需求的方法。这个时候我们得引入一些概念。
就像生物的分类一样,PR 提供了一些描述代码集合的概念(当然这些概念并不只是用于描述代码集合),我们来看看(从大到小排列):
- 对于 Python :包、模块、代码。
- 对于 Rust :工作空间、包、Crate、模块、代码。
个人感觉呢,Python 的模块系统相对易于理解,且对于小项目比较容易管理,但 Rust 的模块系统对于大型项目来说管理方便、比较明了。
模块
先来说说 PR 的模块的概念。
模块最简单的定义就是可执行代码和数据的集合 ,也可以说是一些特定功能的集合。
你可以把它理解为一个代码块,里面包含了常量、函数、结构体、类等等元素。
它可以依照逻辑将代码分层并组织,也可以管理模块成员的可见性。
模块的定义
Python 的模块是依赖于文件系统的。在 Python 中,一个以 py 为后缀名的文件被视为一个模块。以下代码展示了一个简单的模块( test_mod.py ):
GLOBAL = 100
def test_func():
return 100
class TestClass(object):
pass
Rust 的模块则不完全依赖于模块系统,这导致了 Rust 可以以一个模块作为模块的成员。它的模块定义通过使用 mod 关键字或者类似于 Python ,以一个文件作为模块。以下依次分别展示了这两种方法:
main.rs
mod test_mod {
pub const GLOBAL: i64 = 100;
pub fn test_func() -> i64 {
100