编译器 Lint 和 Clippy
Rust 编译器会生成出色的错误消息,并提供实用的内置 lint 功能。Clippy 提供了更多 lint 功能,采用按组分类方式,并可按项目灵活启用。
#[deny(clippy::cast_possible_truncation)]
fn main() {
let x = 3;
while (x < 70000) {
x *= 2;
}
println!("X probably fits in a u16, right? {}", x as u16);
}
This slide should take about 3 minutes.
运行代码示例并检查错误消息。此处还会显示一些 lint,但是一旦完成代码编译,就不会再显示这些 lint。切换到 Playground 网站以显示这些 lint。
解析完 lint 之后,请在 Playground 网站上运行 clippy
,以显示 clippy 警告。Clippy 提供了大量的 lint 文档,并且在不断添加新的 lint(包括默认拒绝 lint)。
请注意,带有 help: ...
的错误或警告可以通过 cargo Fix
或编辑器进行修复。