<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>第7章 包、Crate 与模块 on 编程那些事儿</title><link>https://before80.github.io/prgms/Rust/trpl/modules/</link><description>Recent content in 第7章 包、Crate 与模块 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 11 Aug 2026 23:57:44 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Rust/trpl/modules/index.xml" rel="self" type="application/rss+xml"/><item><title>7.1 包与 Crate</title><link>https://before80.github.io/prgms/Rust/trpl/modules/01-packages-and-crates/</link><pubDate>Wed, 05 Aug 2026 08:44:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/trpl/modules/01-packages-and-crates/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/book/"&gt;The Rust Programming Language&lt;/a&gt;（rustc 1.97.1）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="crate"&gt;包与 Crate&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/book/ch07-01-packages-and-crates.html"&gt;https://doc.rust-lang.org/stable/book/ch07-01-packages-and-crates.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="包与-crate"&gt;包与 Crate&lt;/h2&gt;
&lt;p&gt;　　模块系统里我们先讲的部分是包（package）和 crate。&lt;/p&gt;
&lt;p&gt;　　&lt;em&gt;Crate&lt;/em&gt; 是 Rust 编译器一次会纳入考虑的最小代码量。即便你不用 &lt;code&gt;cargo&lt;/code&gt; 而直接运行 &lt;code&gt;rustc&lt;/code&gt;，并只传入一个源文件（就像我们在第 1 章&lt;a href="https://before80.github.io/prgms/trpl/getting-started/02-hello-world/#rust-program-basics"&gt;「Rust 程序基础」&lt;/a&gt;里做的那样），编译器也会把那个文件当作一个 crate。Crate 可以包含模块，这些模块也可以定义在其他会与该 crate 一同编译的文件里——后面几节会看到。&lt;/p&gt;</description></item><item><title>7.2 用模块控制作用域与私有性</title><link>https://before80.github.io/prgms/Rust/trpl/modules/02-defining-modules-to-control-scope-and-privacy/</link><pubDate>Wed, 05 Aug 2026 08:44:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/trpl/modules/02-defining-modules-to-control-scope-and-privacy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/book/"&gt;The Rust Programming Language&lt;/a&gt;（rustc 1.97.1）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="用模块控制作用域与私有性"&gt;用模块控制作用域与私有性&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/book/ch07-02-defining-modules-to-control-scope-and-privacy.html"&gt;https://doc.rust-lang.org/stable/book/ch07-02-defining-modules-to-control-scope-and-privacy.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="用模块控制作用域与私有性-1"&gt;用模块控制作用域与私有性&lt;/h2&gt;
&lt;p&gt;　　本节我们讨论模块以及模块系统的其他部分，即：用来为项命名的&lt;em&gt;路径&lt;/em&gt;（paths）、把路径引入作用域的 &lt;code&gt;use&lt;/code&gt; 关键字，以及让项变为公有的 &lt;code&gt;pub&lt;/code&gt; 关键字。我们还会谈到 &lt;code&gt;as&lt;/code&gt; 关键字、外部包，以及 glob 运算符。&lt;/p&gt;</description></item><item><title>7.3 路径：引用模块树中的项</title><link>https://before80.github.io/prgms/Rust/trpl/modules/03-paths-for-referring-to-an-item-in-the-module-tree/</link><pubDate>Wed, 05 Aug 2026 08:44:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/trpl/modules/03-paths-for-referring-to-an-item-in-the-module-tree/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/book/"&gt;The Rust Programming Language&lt;/a&gt;（rustc 1.97.1）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="路径引用模块树中的项"&gt;路径：引用模块树中的项&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/book/ch07-03-paths-for-referring-to-an-item-in-the-module-tree.html"&gt;https://doc.rust-lang.org/stable/book/ch07-03-paths-for-referring-to-an-item-in-the-module-tree.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="路径引用模块树中的项-1"&gt;路径：引用模块树中的项&lt;/h2&gt;
&lt;p&gt;　　要告诉 Rust 在模块树中哪里能找到某个项，我们使用路径，就像在文件系统里导航时使用路径一样。要调用一个函数，就需要知道它的路径。&lt;/p&gt;</description></item><item><title>7.4 用 use 关键字导入路径</title><link>https://before80.github.io/prgms/Rust/trpl/modules/04-bringing-paths-into-scope-with-the-use-keyword/</link><pubDate>Wed, 05 Aug 2026 08:44:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/trpl/modules/04-bringing-paths-into-scope-with-the-use-keyword/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/book/"&gt;The Rust Programming Language&lt;/a&gt;（rustc 1.97.1）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="use"&gt;用 use 关键字导入路径&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/book/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html"&gt;https://doc.rust-lang.org/stable/book/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="用-use-关键字导入路径"&gt;用 &lt;code&gt;use&lt;/code&gt; 关键字导入路径&lt;/h2&gt;
&lt;p&gt;　　每次调用函数都把路径写全，会显得既麻烦又重复。在示例 7-7 中，无论我们选择绝对路径还是相对路径去调用 &lt;code&gt;add_to_waitlist&lt;/code&gt;，每次调用时都还得写出 &lt;code&gt;front_of_house&lt;/code&gt; 和 &lt;code&gt;hosting&lt;/code&gt;。幸好有办法简化：可以用 &lt;code&gt;use&lt;/code&gt; 关键字导入路径，然后在该作用域的其他地方使用更短的名字。&lt;/p&gt;</description></item><item><title>7.5 将模块拆分到不同文件</title><link>https://before80.github.io/prgms/Rust/trpl/modules/05-separating-modules-into-different-files/</link><pubDate>Wed, 05 Aug 2026 08:44:00 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/trpl/modules/05-separating-modules-into-different-files/</guid><description>&lt;blockquote&gt;
&lt;p&gt;译文 · 基于 &lt;a href="https://doc.rust-lang.org/stable/book/"&gt;The Rust Programming Language&lt;/a&gt;（rustc 1.97.1）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="将模块拆分到不同文件"&gt;将模块拆分到不同文件&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://doc.rust-lang.org/stable/book/ch07-05-separating-modules-into-different-files.html"&gt;https://doc.rust-lang.org/stable/book/ch07-05-separating-modules-into-different-files.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="将模块拆分到不同文件-1"&gt;将模块拆分到不同文件&lt;/h2&gt;
&lt;p&gt;　　到目前为止，本章的例子都是在一个文件里定义多个模块。当模块变大时，你可能想把它们的定义挪到单独的文件里，好让代码更容易浏览。&lt;/p&gt;</description></item></channel></rss>