RUST 学习日记 第4课 ——规范

109 阅读1分钟

0x01 程序入口点

每次创建项目都会生成一个默认的函数——main,这个main函数就是这个程序的入口点。

fn main(){
}

0x02 main函数的参数和返回值

fn main() {
    for arg in std::env::args()
    {
        println!("{}", arg);
    }
​
    // 返回值,默认返回是0
    std::process::exit(0);
}

Rust中有专门的函数对入参做处理——std::env::args(),可以接收所有参数。关于函数的返回值,可以使用std::process::exit(0);返回,其中的入参就是返回值了。

0x03 命名规范

条目惯例
包 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 写的,因此这种多余的注释其实没有任何意义。