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 命名规范
| 条目 | 惯例 |
|---|---|
| 包 Crates | unclear |
| 模块 Modules | snake_case |
| 类型 Types | UpperCamelCase |
| 特征 Traits | UpperCamelCase |
| 枚举 Enumerations | UpperCamelCase |
| 结构体 Structs | UpperCamelCase |
| 函数 Functions | snake_case |
| 方法 Methods | snake_case |
| 通用构造器 General constructors | new or 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 | 通常使用小写字母: 'a,'de,'src |
| Features | unclear but see C-FEATURE |
对于驼峰命名法,复合词的缩略形式我们认为是一个单独的词语,所以只对首字母进行大写:使用 Uuid 而不是 ,UUIDUsize 而不是 ,USizeStdin 而不是 。StdIn
对于蛇形命名法,缩略词用全小写:is_xid_start。
对于蛇形命名法(包括全大写的 SCREAMING_SNAKE_CASE),除了最后一部分,其它部分的词语都不能由单个字母组成: btree_map 而不是 ,b_tree_mapPI_2 而不是 .PI2
包名不应该使用 -rs 或者 -rust 作为后缀,因为每一个包都是 Rust 写的,因此这种多余的注释其实没有任何意义。