Rust 基础入门指南
1. Rust 语言概述
Rust 的历史与设计理念
Rust 是由 Mozilla 研究院的 Graydon Hoare 于2010年开始创建的系统编程语言。其设计目标是创建一种安全、并发、实用的编程语言,特别关注内存安全和并发性。
Rust 的核心设计理念包括:
- 内存安全,无需垃圾回收
- 零成本抽象
- 并发安全
- 实用性和性能
Rust 的主要特点和优势
-
内存安全
- 通过所有权系统和借用检查器在编译期防止常见的内存错误
- 杜绝空指针、悬垂指针和数据竞争
-
高性能
- 与 C/C++ 性能相当
- 没有运行时开销
- 零成本抽象
-
现代语言特性
- 模式匹配
- 泛型
- 特征(Trait)系统
- 函数式编程支持
-
安全的并发
- 编译器级别的并发安全检查
- 消息传递和共享状态并发模型
与其他编程语言的对比
-
与 C/C++
- 更安全的内存管理
- 更现代的语言特性
- 没有未定义行为
-
与 Java/C#
- 没有运行时垃圾回收
- 更低的性能开销
- 更直接的硬件控制
-
与 Python/JavaScript
- 静态类型
- 编译型语言
- 性能更高
- 更严格的类型系统
2. 开发环境搭建
Rust 安装
推荐使用 rustup
,这是 Rust 官方的安装工具:
# 在 Windows 上
curl https://sh.rustup.rs -sSf | sh
# macOS/Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装后,你将获得:
rustc
:Rust 编译器cargo
:包管理器和构建工具rustup
:工具链管理器
开发工具配置
VSCode 配置
- 安装 “rust-analyzer” 扩展
- 安装 “CodeLLDB” 扩展进行调试
CLion 配置
- 安装 Rust 插件
- 配置 Rust 工具链
第一个 Rust 程序
创建 hello_world.rs
:
fn main() {
println!("Hello, Rust World!");
}
使用 rustc hello_world.rs
编译并运行
3. 基本语法与数据类型
变量与常量
// 不可变变量
let x = 5;
// x = 6; // 编译错误
// 可变变量
let mut y = 10;
y = 20; // 允许
// 常量
const MAX_POINTS: u32 = 100_000;
基本数据类型
// 整数类型
let a: i8 = -128;
let b: u32 = 42;
// 浮点类型
let f1: f32 = 3.14;
let f2: f64 = 2.71828;
// 布尔类型
let t: bool = true;
let f: bool = false;
// 字符类型
let c: char = '中';
类型推断
let x = 42; // 自动推断为 i32
let y = 3.14; // 自动推断为 f64
类型转换
let x = 42;
let y = x as f64; // 显式类型转换
运算符
// 算术运算符
let sum = 5 + 10;
let difference = 95.5 - 4.3;
let product = 4 * 30;
let quotient = 56.7 / 32.2;
let remainder = 43 % 5;
// 比较运算符
let a = 5;
let b = 10;
let greater = a > b;
let less_equal = a <= b;
4. 控制流
if/else 条件语句
let number = 7;
if number < 5 {
println!("条件为真");
} else if number == 5 {
println!("number 等于 5");
} else {
println!("条件为假");
}
// 三元运算符风格
let result = if number > 5 { "大于5" } else { "小于等于5" };
循环
// loop 无限循环
loop {
println!("永远循环");
break; // 手动中断
}
// while 循环
let mut counter = 3;
while counter != 0 {
println!("{}!", counter);
counter -= 1;
}
// for 循环
for number in 1..4 {
println!("{}!", number);
}
match 模式匹配
let x = 1;
match x {
1 => println!("one"),
2 => println!("two"),
3 => println!("three"),
_ => println!("anything"),
}
if let 和 while let
// if let 简化匹配
let some_value = Some(3);
if let Some(value) = some_value {
println!("值为:{}", value);
}
// while let
let mut stack = vec![1, 2, 3];
while let Some(top) = stack.pop() {
println!("栈顶元素:{}", top);
}
结语
Rust 的基础语法简洁而强大,通过严格的编译时检查,提供了安全且高效的编程体验。持续学习和实践是掌握 Rust 的关键。