阶段一:入门(理解 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;
        }
    }
}
相关推荐
Mr -老鬼21 小时前
Rust 知识图-谱基础部分
开发语言·后端·rust
IT_陈寒21 小时前
SpringBoot 3.0实战:10个高效开发技巧让你的启动时间减少50%
前端·人工智能·后端
im_AMBER21 小时前
前端 + agent 开发学习路线
前端·学习·agent
亿坊电商1 天前
利于SEO优化的CMS系统都有哪些特点?
前端·数据库
盛者无名1 天前
Rust语言基础
开发语言·后端·rust
juejin_cn1 天前
使用 Codex SDK 轻松实现文字控制电脑
前端
CUYG1 天前
Moment.js常用
前端
用户81274828151201 天前
漏学Input知识系列之“偷”走了其他窗口的事件pilferPointers
前端
用户81274828151201 天前
安卓14自由窗口圆角处理之绘制圆角轮廓线
前端
用户81274828151201 天前
跨进程高级玩法方案2-学员分享
前端