Rust 程序设计语言 简体中文版 1.85.0用来解释模块、路径、use关 键词和pub关键词如何在编译器中工作,以及大部分开发者如何组织他们的代码。我们将在本 章中举例说明每条规则,但这是回顾模块工作原理的绝佳参考。 • 从 crate 根节点开始: 当编译一个 crate, 编译器首先在 crate 根文件(通常,对于一个库 crate 而言是 src/lib.rs,对于一个二进制 crate 而言是 src/main.rs)中寻找需要被编译的代 的模块。编译器会在下列路径中寻找模块代码:- 内联,用大括号替换 mod garden 后跟的分号 • 在文件 src/garden.rs • 在文件 src/garden/mod.rs • 声明子模块: 在除了 crate 根节点以外的任何文件中,你可以定义子模块。比如,你可能在 src/garden.rs 中声明 mod vegetables;。编译器会在以父模块命名的目录中寻找子模块代 码:- 内联,直接在 mod vegetables Rc引用计数智能指针 大部分情况下所有权是非常明确的:可以准确地知道哪个变量拥有某个值。然而,有些情况单 个值可能会有多个所有者。例如,在图数据结构中,多个边可能指向相同的节点,而这个节点 从概念上讲为所有指向它的边所拥有。节点在没有任何边指向它从而没有任何所有者之前,都 不应该被清理掉。 为了启用多所有权需要显式地使用 Rust 类型 Rc ,其为引用计数(reference counting)的 0 码力 | 562 页 | 3.23 MB | 23 天前3
共 1 条
- 1













