目录
什么是 Rust
Rust 是一种现代系统编程语言,强调性能、内存安全和并发性。它由 Mozilla 研究团队开发,首次发布于 2010 年。Rust 通过其独特的所有权系统在编译时防止内存错误,无需垃圾回收器。
为什么要学习 Rust
- 内存安全:避免空指针、数据竞争等问题。
- 高性能:接近 C/C++ 的速度,适合系统编程。
- 并发性:内置工具支持安全多线程。
- 生态系统:Cargo 包管理器和丰富的社区库。
- 就业前景:广泛用于区块链、嵌入式和 WebAssembly。
安装与环境配置
- 安装 Rust:
- 使用
rustup
,官方推荐的安装工具:bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Windows 用户可下载
rustup-init.exe
。
- 验证安装:
rustc --version
cargo --version
- 更新 Rust:
rustup update
- 推荐编辑器:
- VS Code +
rust-analyzer
插件。
基本语法与概念
变量与数据类型
- 变量:默认不可变,使用
mut
声明可变变量。 - 基本类型:整数 (
i32
,u8
)、浮点数 (f64
)、布尔 (bool
)、字符 (char
)。
let x = 5; // 不可变
let mut y = 10; // 可变
y = 15;
函数
- 使用
fn
定义,支持多返回值。
fn add(a: i32, b: i32) -> i32 {
a + b // 无分号表示返回值
}
控制流
- if-else:
let number = 7;
if number > 0 {
println!("正数");
} else {
println!("非正数");
}
- 循环:
loop
、while
、for
。
for i in 1..4 {
println!("{}", i); // 打印 1, 2, 3
}
所有权与借用
- 所有权:每个值有唯一的所有者,离开作用域时释放。
- 借用:使用
&
(不可变引用)或&mut
(可变引用)。
fn main() {
let s = String::from("hello");
let r = &s; // 借用
println!("{}", r);
}
结构体与枚举
- 结构体 (Struct):
struct Point {
x: i32,
y: i32,
}
let p = Point { x: 0, y: 0 };
- 枚举 (Enum):
enum Color {
Red,
Green,
Blue,
}
let c = Color::Red;
模块与包
- 模块:使用
mod
组织代码。
mod math {
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
}
fn main() {
println!("{}", math::add(2, 3));
}
- 包:通过 Cargo 管理,使用
Cargo.toml
。
错误处理
- Result:处理可恢复错误。
fn divide(a: i32, b: i32) -> Result<i32, String> {
if b == 0 {
Err(String::from("除数不能为 0"))
} else {
Ok(a / b)
}
}
- Option:处理可能为空的值。
代码示例
“Hello, World!” 与 Cargo
- 创建项目:
cargo new hello_rust
cd hello_rust
- 编辑
src/main.rs
:
fn main() {
println!("Hello, Rust!");
}
- 编译并运行:
cargo run
计算器示例
fn main() {
let a = 10;
let b = 5;
println!("{} + {} = {}", a, b, add(a, b));
}
fn add(x: i32, y: i32) -> i32 {
x + y
}
运行结果:
10 + 5 = 15
参考资料与出站链接
- 官方文档:
- 学习资源:
- Rustlings:交互式练习。
- Rust by Example:示例驱动学习。
- Rust 语言圣经(中文):中文教程。
- 工具与社区:
发表回复