G.NAM.01 使用统一的命名风格
【级别】 要求
【描述】
Rust 倾向于在“类型”级的结构中使用驼峰( UpperCamelCase) 命名风格,在 “变量、值(实例)、函数名”等结构中使用蛇形( snake_case)命名风格。
下面是汇总信息:
| Item | 规范 |
|---|---|
| 包(Crates) | 通常使用 snake_case 1 |
| 模块(Modules) | snake_case |
| 类型(Types) | UpperCamelCase |
| 特质(Traits) | UpperCamelCase |
| 枚举体(Enum variants) | UpperCamelCase |
| 函数(Functions) | snake_case |
| 方法(Methods) | snake_case |
| 通用构造函数(General constructors) | new 或者 with_more_details |
| 转换构造函数(Conversion constructors) | from_some_other_type |
| 宏(Macros) | snake_case! |
| 本地变量(Local variables) | snake_case |
| 静态变量(Statics) | SCREAMING_SNAKE_CASE |
| 常量(Constants) | SCREAMING_SNAKE_CASE |
| 类型参数(Type parameters) | 简明的 UpperCamelCase ,通常使用单个大写字母: T |
| 生存期(Lifetimes) | 简短的 lowercase,通常使用单个小写字母 'a, 'de, 'src,尽量保持语义 |
| 特性(Features) | snake_case |
说明 :
- 在
UpperCamelCase情况下,由首字母缩写组成的缩略语和 复合词的缩写,算作单个词。比如,应该使用Uuid而非UUID,使用Usize而不是USize,或者是Stdin而不是StdIn。 - 在
snake_case中,首字母缩写和缩略词是小写的is_xid_start。 - 在
snake_case或者SCREAMING_SNAKE_CASE情况下,每个词不应该由单个字母组成——除非这个字母是最后一个词。比如,使用btree_map而不使用b_tree_map,使用PI_2而不使用PI2。
关于包命名:
- 由于历史问题,包名有两种形式
snake_case或kebab-case,但实际在代码中需要引入包名的时候,Rust 只能识别snake_case,也会自动将kebab-case识别为kebab_case。所以建议使用snake_case。 - Crate 的名称通常不应该使用
-rs或者-rust作为后缀或者前缀。但是有些情况下,比如是其他语言移植的同名 Rust 实现,则可以使用-rs后缀来表明这是 Rust 实现的版本。
【参考】
Rust 命名规范在 RFC 0430 中有也描述。
【Lint 检测】
| lint name | Clippy 可检测 | Rustc 可检测 | Lint Group |
|---|---|---|---|
Rustc: non_camel_case_types | no | yes | Style |
Rustc: non_snake_case | no | yes | Style |