add chapter_4_1.md

This commit is contained in:
Davirain
2023-05-17 16:59:49 +08:00
parent 0612b0c954
commit 6c4de9b4f9
2 changed files with 90 additions and 14 deletions

View File

@@ -1,16 +1,17 @@
# Summary
- [1 前言:为什么写这本书](./chapter_1.md)
- [2 欢迎来到Rust的世界](./chapter_2.md)
- [3 Rust基础]()
- [3.1 变量和可变性](./chapter_3/chapter_3_1.md)
- [3.2 基本数据类型](./chapter_3/chapter_3_2.md)
- [3.3 函数](./chapter_3/chapter_3_3.md)
- [3.4 注释](./chapter_3/chapter_3_4.md)
- [3.5 控制流](./chapter_3/chapter_3_5.md)
- [3.6 Rust内存模型](./chapter_3/chapter_3_6.md)
- [3.7 所有权](./chapter_3/chapter_3_7.md)
- [3.7.1 所有权介绍](./chapter_3/chapter_3_7_1.md)
- [3.7.2 引用与借用](./chapter_3/chapter_3_7_2.md)
- [3.7.3 Slice类型](./chapter_3/chapter_3_7_3.md)
- [4 Rust使用技巧]()
- [前言:为什么写这本书](./chapter_1.md)
- [欢迎来到Rust的世界](./chapter_2.md)
- [Rust基础]()
- [变量和可变性](./chapter_3/chapter_3_1.md)
- [基本数据类型](./chapter_3/chapter_3_2.md)
- [函数](./chapter_3/chapter_3_3.md)
- [注释](./chapter_3/chapter_3_4.md)
- [控制流](./chapter_3/chapter_3_5.md)
- [Rust内存模型](./chapter_3/chapter_3_6.md)
- [所有权](./chapter_3/chapter_3_7.md)
- [所有权介绍](./chapter_3/chapter_3_7_1.md)
- [引用与借用](./chapter_3/chapter_3_7_2.md)
- [Slice类型](./chapter_3/chapter_3_7_3.md)
- [Rust使用技巧]()
- [Rust代码风格与格式化](./chapter_4/chapter_4_1.md)

View File

@@ -0,0 +1,75 @@
# 4.1. Rust代码风格与格式化
## 4.1.1 Rust官方的编码风格
遵循Rust官方编码风格有助于提高代码的可读性和可维护性。以下为一些关键的Rust编码风格规范
1. 命名规范
- 变量名和函数名使用小写字母和下划线的蛇形命名法snake_case`variable_name``function_name`
- 类型名包括结构体、枚举和类型别名使用大驼峰式命名法UpperCamelCase如 TypeName。
- 常量名使用大写字母和下划线的蛇形命名法SCREAMING_SNAKE_CASE`CONSTANT_NAME`
- 生命周期参数名使用小写字母和撇号tick`'a`
2. 代码布局
- 缩进:使用 4 个空格而非制表符tab进行缩进。
- 空行:在函数和模块之间使用空行进行分隔。
- 括号和操作符:在括号和操作符两侧使用空格进行分隔,例如 `let x = a + b`;。
- 逗号:在逗号后面使用空格,如 `fn example(a: i32, b: String) { ... }`
- 最大行宽:建议将每行代码的长度限制在 100 个字符以内。在某些情况下,可以适当增加到 120 个字符。
3. 注释:
- 单行注释:使用 // 进行单行注释,注释文字与 // 之间留一个空格。
- 多行注释:使用 `/* */` 进行多行注释。将注释内容与 /* 和 */ 之间分隔一个空格。
4. 文档注释:
- 单行文档注释:使用 `///` 进行单行文档注释,注释文字与 `///` 之间留一个空格。
- 多行文档注释:使用 `/** */` 进行多行文档注释。将注释内容与 `/**``*/` 之间分隔一个空格。
5. 模块和包导入:
- 模块导入:将导入语句放在文件顶部,按字母顺序排序,使用空行分隔不同来源的导入。
- 尽量使用绝对导入路径:在导入路径前添加 `crate::``self::`
6. 错误处理:
- 使用 `Result` 类型进行错误处理,避免使用 `panic!``unwrap()`
- 使用 `?` 运算符进行错误传递。
## 4.1.2 使用rustfmt进行自动格式化
1. 安装rustfmt
安装rustfmt的命令如下
```bash
rustup component add rustfmt
```
安装rustfmt命令后可以执行Cargo fmt或者rustfmt 文件名进行格式化。
2. 配置rustfmt
可以为项目添加一个rustfmt的配置添加方式如下
- 在项目根目录下创建一个名为rustfmt.toml的文件此文件将包含所有rustfmt的配置选项。
- 下面为比较常见的rustfmt.toml配置
```toml
max_width = 100 // 设置最大行宽为 100 个字符
tab_spaces = 4 // 设置缩进宽度为 4 个空格
edition = "2018" // 设置 Rust 版本(根据实际项目版本进行调整)
use_small_heuristics = "Max" // 设置换行策略
newline_style = "Auto" // 设置换行符风格,根据平台自动选择
```
- 更多配置选项可以在 官方文档 中找到。
3. 使用rustfmt格式化代码
- 对整个目录中的所有rust代码格式化需在项目根目录下运行如下命令
```bash
cargo fmt
```
- 如果只对某个文件进行格式化,则运行如下命令:
```bash
rustfmt src/lib.rs
```
- 如果只想检查代码格式是否符合规范,而不进行实际格式化操作,则可以运行如下命令:
```bash
cargo fmt -- --check
```