阶段一:入门(理解 Rust 的基本概念)

1. 安装与工具链

  1. 安装 Rust:
arduino 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update
  1. 工具介绍:
  • rustc main.rs 编译单个 Rust 文件
  • cargo new project_name 创建项目
  • cargo build 构建项目
  • cargo run 构建并运行
  • cargo check 仅检查语法,不编译
  1. 配置 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. 简单练习

  1. 计算 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));
    }
}
  1. 判断素数
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));
}
  1. 简单猜数字游戏
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;
        }
    }
}
相关推荐
passerby60613 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了3 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅3 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅3 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅4 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment4 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅4 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊4 小时前
jwt介绍
前端
爱敲代码的小鱼4 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax
Cobyte5 小时前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc