跳到主要内容

向Rust学习通用编码规范

命名规范

通常,对于 type-level 的构造 Rust 倾向于使用驼峰命名法,而对于 value-level 的构造使用蛇形命名法。详情如下:

详情如下:

条目惯例
包 Cratesunclear
模块 Modulessnake_case
类型 TypesUpperCamelCase
特征 TraitsUpperCamelCase
枚举 EnumerationsUpperCamelCase
结构体 StructsUpperCamelCase
函数 Functionssnake_case
方法 Methodssnake_case
通用构造器 General constructorsnew or with_more_details
转换构造器 Conversion constructorsfrom_some_other_type
宏 Macrossnake_case!
局部变量 Local variablessnake_case
静态类型 StaticsSCREAMING_SNAKE_CASE
常量 ConstantsSCREAMING_SNAKE_CASE
类型参数 Type parametersUpperCamelCase,通常使用一个大写字母: T
生命周期 Lifetimes通常使用小写字母: 'a'de'src
Featuresunclear but see C-FEATURE

对于驼峰命名法,复合词的缩略形式我们认为是一个单独的词语,所以只对首字母进行大写:使用 Uuid 而不是 UUIDUsize 而不是 USizeStdin 而不是 StdIn

对于蛇形命名法,缩略词用全小写:is_xid_start

对于蛇形命名法(包括全大写的 SCREAMING_SNAKE_CASE),除了最后一部分,其它部分的词语都不能由单个字母组成: btree_map 而不是 b_tree_mapPI_2 而不是 PI2.

包名不应该使用 -rs 或者 -rust 作为后缀,因为每一个包都是 Rust 写的,因此这种多余的注释其实没有任何意义。

特殊变量

  • 未使用变量的命名:使用下划线开头忽略未使用的变量。
  • 解构时占位变量的命名:_ 代表匹配一个值,但是我们不关心具体的值是什么,因此没有使用一个变量名而是使用了 _

参考