1. 安装与工具链
- 安装 Rust:
arduino
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update
- 工具介绍:
rustc main.rs
编译单个 Rust 文件cargo new project_name
创建项目cargo build
构建项目cargo run
构建并运行cargo check
仅检查语法,不编译
- 配置 IDE:
- VS Code + rust-analyzer 插件
- IntelliJ + Rust 插件
2. Rust 基础语法
变量与可变性
ini
fn main() {
let x = 5; // 不可变变量
let mut y = 10; // 可变变量
y += 5;
println!("x = {}, y = {}", x, y);
}
基本数据类型
ini
let a: i32 = 10; // 整数
let b: f64 = 3.14; // 浮点数
let c: bool = true; // 布尔
let d: char = 'R'; // 字符
字符串类型
rust
let s1: &str = "hello"; // 字符串切片
let s2: String = String::from("world"); // 可变字符串
常量与静态变量
ini
const PI: f64 = 3.14159;
static mut COUNTER: i32 = 0;
3. 控制流
if / else
ini
let n = 10;
if n % 2 == 0 {
println!("偶数");
} else {
println!("奇数");
}
loop / while / for
rust
let mut i = 0;
while i < 5 {
println!("{}", i);
i += 1;
}
for j in 0..5 {
println!("{}", j);
}
loop {
println!("无限循环");
break;
}
match 模式匹配
ini
let number = 3;
match number {
1 => println!("一"),
2 => println!("二"),
3 => println!("三"),
_ => println!("其他"),
}
4. 函数和作用域
rust
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn main() {
let result = add(5, 10);
println!("5 + 10 = {}", result);
}
- 变量作用域:在函数或块外部不可访问内部变量
- 生命周期初探:变量在离开作用域时被释放
5. 简单练习
- 计算 Fibonacci 数列
rust
fn fibonacci(n: u32) -> u32 {
if n == 0 { 0 }
else if n == 1 { 1 }
else { fibonacci(n-1) + fibonacci(n-2) }
}
fn main() {
for i in 0..10 {
println!("Fibonacci({}) = {}", i, fibonacci(i));
}
}
- 判断素数
rust
fn is_prime(n: u32) -> bool {
if n <= 1 { return false; }
for i in 2..n {
if n % i == 0 {
return false;
}
}
true
}
fn main() {
let num = 17;
println!("{} 是素数吗? {}", num, is_prime(num));
}
- 简单猜数字游戏
rust
use std::io;
use rand::Rng;
fn main() {
let secret = rand::thread_rng().gen_range(1..=100);
println!("猜一个 1 到 100 的数字:");
loop {
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("读取失败");
let guess: u32 = guess.trim().parse().expect("请输入数字");
if guess < secret {
println!("太小了!");
} else if guess > secret {
println!("太大了!");
} else {
println!("猜对了!");
break;
}
}
}