你可能不知道的 Rust lint 规则

主要观点:Rust 编译器默认带有一些有用的 lint,部分用 Clippy 提供额外 lint,文中介绍了多种默认允许的 lint 及其作用、用途及注意事项。
关键信息

  • 介绍了“allowed-by-default”lints 的查找位置。
  • 详细阐述了 13 种 lint,包括 Anonymous Parameters、Box Pointers 等,分别说明其产生背景、作用及使用注意。
    重要细节
  • Rust 2015 允许在 trait 定义中省略参数名,2018 年移除支持;现在需用_忽略值。
  • 早期需实现自己的Box来改变默认分配器,如今可自由更改,该 lint 也有其用途。
  • 省略 lifetime 有优缺点,此 lint 要求路径中不省略 lifetime 以保证语义清晰。
  • 一般应实现Copy等 trait,但有些类型不应实现,可通过属性设置。
  • Debugtrait 用于调试但有些类型不应实现,也有编译成本。
  • 各种 lint 如缺少文档、单一生存期等在不同情况下的作用及注意点。
  • 一些 lint 并非对所有代码都适用,如开始时无需关注缺少文档。
  • 文中还纠正了关于 Anonymous Parameters 和 Bare Trait Objects 的错误描述。
阅读 10
0 条评论