没有 `main` 的代码片段通过测试,但在幻灯片中无法编译
作者: randomPoison创建于 2026年4月3日更新于 2026年4月3日
idiomatic 课程中的 "PartialEq 和 Eq" 幻灯片有一段代码片段 (https://GitHub.com/google/comprehensive-Rust/blob/b9e63dd1229dbdc847820ac21f12c65d43f0e1f9/src/idiomatic/foundations-api-design/predictable-api/common-traits/partialeq-eq.md?plain=1#L18-L41),它不能编译或运行,但没有标记为 `ignore` 或 `compile_fail`,而且 `mdbook test` 也不会失败。 问题在于,该代码片段缺少一个 `main` 函数,因此在在幻灯片中尝试运行时无法编译/运行。 但是在运行测试时,如果该代码片段没有自己的 `main` 函数,则会隐含地添加一个 `main` 函数包装器。这意味着测试通过,尽管在教学过程中该代码不工作。 我认为隐含的 `main` 行为是有用的,可以让我们编写更简洁的代码示例,但我们需要在幻灯片中运行代码片段时添加该行为,或者需要从测试中删除此行为,以便测试能够捕获代码片段不工作的情况。
内容来源: google/comprehensive-rust