《Rust编程入门》附录A:Rust语言参考
附录A:Rust 语言参考
本附录提供 Rust 编程语言的核心概念、语法规则和功能的简明概述,旨在为开发者提供快速查阅的参考工具。
1. 基本语法规则
1.1 变量声明
- 不可变变量(默认):
1
let x = 5; // x 是不可变的
- 可变变量:
1 2
let mut y = 10; // y 是可变的 y = 20;
1.2 常量
- 定义常量必须指定类型,并且生命周期为整个程序:
1
const MAX_POINTS: u32 = 100_000;
1.3 数据类型
-
标量类型:整型、浮点型、布尔型、字符型。
1 2 3 4
let integer: i32 = -10; let float: f64 = 3.14; let boolean: bool = true; let character: char = 'A';
-
复合类型:元组和数组。
1 2
let tuple: (i32, f64, char) = (42, 3.14, 'R'); let array: [i32; 5] = [1, 2, 3, 4, 5];
2. 所有权与借用
2.1 所有权规则
- 每个值有且仅有一个所有者。
- 当所有者离开作用域时,值会被自动释放。
-
移动:
1 2
let s1 = String::from("hello"); let s2 = s1; // s1 被移动,s1 不再可用
-
克隆:
1 2
let s1 = String::from("hello"); let s2 = s1.clone(); // 深拷贝,s1 和 s2 都可用
2.2 借用与引用
-
不可变引用:
1 2
let s = String::from("hello"); let len = calculate_length(&s); // 不可变借用
-
可变引用:
1 2
let mut s = String::from("hello"); change(&mut s); // 可变借用
3. 控制流
3.1 条件判断
- if 语句:
1 2 3 4 5
if x > 0 { println!("Positive"); } else { println!("Negative or Zero"); }
3.2 循环
-
无限循环:
1 2 3
loop { println!("Running..."); }
-
带条件循环:
1 2 3
while x > 0 { x -= 1; }
-
迭代循环:
1 2 3
for i in 1..=5 { println!("{}", i); }
3.3 模式匹配
- match 语句:
1 2 3 4 5
match value { 1 => println!("One"), 2 => println!("Two"), _ => println!("Other"), }
4. 函数与闭包
4.1 函数
- 定义函数:
1 2 3
fn add(a: i32, b: i32) -> i32 { a + b }
4.2 闭包
- 定义闭包:
1 2
let add = |a, b| a + b; let result = add(5, 3);
5. 集合与迭代器
5.1 常用集合
-
向量(Vec):
1 2
let mut v = Vec::new(); v.push(1);
-
哈希映射(HashMap):
1 2 3
use std::collections::HashMap; let mut map = HashMap::new(); map.insert("key", "value");
5.2 迭代器
- 创建迭代器:
1 2 3 4
let nums = vec![1, 2, 3]; for num in nums.iter() { println!("{}", num); }
6. 错误处理
6.1 Result 枚举
- 定义与使用:
1 2 3 4 5
let result: Result<i32, &str> = Ok(10); match result { Ok(val) => println!("Value: {}", val), Err(err) => println!("Error: {}", err), }
6.2 Option 枚举
- 定义与使用:
1 2 3 4
let some_value: Option<i32> = Some(42); if let Some(val) = some_value { println!("Value: {}", val); }
7. 并发与多线程
7.1 创建线程
- 使用 std::thread:
1 2 3 4
use std::thread; thread::spawn(|| { println!("Hello from another thread!"); });
7.2 消息传递
- 使用 mpsc:
1 2 3 4
use std::sync::mpsc; let (tx, rx) = mpsc::channel(); tx.send("Hello").unwrap(); println!("{}", rx.recv().unwrap());
8. 常用工具
8.1 Cargo
-
创建新项目:
1
cargo new project_name
-
运行项目:
1
cargo run
-
添加依赖: 编辑
Cargo.toml
文件:1 2
[dependencies] rand = "0.8"
8.2 clippy
-
安装:
1
rustup component add clippy
-
运行:
1
cargo clippy
9. 参考资料
- Rust 官方文档:https://doc.rust-lang.org
- Rust 标准库:https://doc.rust-lang.org/std
- Cargo 指南:https://doc.rust-lang.org/cargo
通过本附录,开发者可以快速定位 Rust 语言核心概念与语法,希望本参考资料能为您的开发旅程提供帮助!