第 1 章:Rust 入门基础

第 1 章:Rust 入门基础

1.1 Rust 语言简介

Rust 是一门系统级编程语言,强调性能、安全性和并发。它常用于编写操作系统组件、嵌入式程序、网络服务、命令行工具和高性能库。

  • 目标:在无垃圾回收器的情况下实现内存安全
  • 核心特性:所有权、借用、生命周期、零成本抽象、模式匹配
  • 工具链:rustccargorustuprustfmtclippy
  • 生态:crates.ioRust Playground、官方文档

1.2 开发环境搭建

1.2.1 Windows 推荐:MSYS2 + MinGW64 + Rust

  1. 安装 MSYS2

    • 下载地址:https://www.msys2.org/
    • 运行安装程序,完成后打开 MSYS2 MinGW 64-bit 终端
    • 更新核心包:
      pacman -Syu
      
    • 关闭终端后重新打开 MinGW 64-bit 终端,再次更新:
      pacman -Su
      
  2. 安装 MinGW64 工具链

    • 安装基本工具:
      pacman -S --needed base-devel mingw-w64-x86_64-toolchain
      
    • 安装 gitcurlmake 等常用工具:
      pacman -S --needed mingw-w64-x86_64-git mingw-w64-x86_64-curl mingw-w64-x86_64-make
      
  3. 安装 Rust 与 rustup

    • 在 MinGW64 终端中执行官方安装脚本:
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      
    • 如果喜欢 GUI 安装,可在 Windows 上运行 rustup-init.exe
    • 安装完成后,使用 MinGW64 终端检查:
      rustc --version
      cargo --version
      rustup show
      
  4. 配置 Rust 目标和工具链

    • 默认安装 stable 工具链:
      rustup default stable
      
    • 如果需要构建 x86_64-pc-windows-gnu
      rustup target add x86_64-pc-windows-gnu
      
    • 通过 MSYS2 MinGW64 终端运行时通常使用 x86_64-pc-windows-gnu 目标
  5. VS Code 设置

    • 安装 Visual Studio Code
    • 推荐扩展:
      • rust-lang.rust-analyzer
      • ms-vscode.cpptools(可选,用于 C/C++ 相关原生库调试)
      • matklad.rust-analyzer
    • 在 VS Code 中打开项目文件夹
    • 如果使用 MSYS2 终端编译,建议将 VS Code 终端类型设置为 PowerShell 或命令提示符,并确保 PATH 包含 MSYS2 的 mingw64/bin
    • settings.json 中可加入:
      {
        "terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
        "terminal.integrated.env.windows": {
          "PATH": "C:\\msys64\\mingw64\\bin;${env:PATH}"
        }
      }
      
  6. 常用命令

    • rustc --version
    • cargo --version
    • rustup update
    • rustup default stable
    • cargo new hello_rust
    • cargo init
    • cargo run
    • cargo build
    • cargo check
  7. 创建项目

    • 创建新项目:cargo new hello_rust
    • 初始化现有目录:cargo init
    • 进入目录:cd hello_rust
    • 编译运行:cargo run
    • 仅编译:cargo build
    • 语法检查:cargo check

1.3 基本语法

变量与可变性

fn main() {
    let x = 5;
    let mut y = 10;
    y += 2;
    println!("x = {}, y = {}", x, y);
}
  • let 默认绑定不可变变量
  • let mut 声明可变变量
  • const 定义常量,必须显式指定类型且在编译时求值
  • 变量遮蔽(shadowing)允许重新绑定同名变量
let x = 5;
let x = x + 1;

数据类型

Rust 常用标量类型:

  • 整数:i32, u32, i64, usize
  • 浮点数:f32, f64
  • 布尔:bool
  • 字符:char

复合类型:

  • 元组:(i32, f64, char)
  • 数组:[i32; 5]

类型推断允许省略大部分显式类型,但函数参数、常量通常需要指定类型。

表达式与语句

Rust 区分表达式和语句:

  • 语句不会返回值,例如 let x = 5;
  • 表达式会返回值,例如 5 + 6
let x = {
    let y = 3;
    y + 1
};

注释

  • 单行注释:// ...
  • 多行注释:/* ... */
  • 文档注释://///!

1.4 函数与控制流

函数定义

fn add(a: i32, b: i32) -> i32 {
    a + b
}
  • fn 用于定义函数
  • 参数必须指定类型
  • 返回类型使用 -> 标注
  • 最后一个表达式可省略 return

控制流

if / else:

let number = 7;
if number < 5 {
    println!("小于 5");
} else {
    println!("大于等于 5");
}

循环:

  • loop:无限循环,通常与 break 结合
  • while:条件循环
  • for:在迭代器上迭代
for i in 1..5 {
    println!("{}", i);
}

模式匹配基础

if let 是处理简单模式匹配的便捷方式:

let some_value = Some(3);
if let Some(x) = some_value {
    println!("value = {}", x);
}

1.5 小结与练习

练习建议:

  • 写一个程序计算 1~n 的阶乘
  • 实现摄氏度 <-> 华氏度转换函数
  • 练习使用 let mutconst 和遮蔽
  • 通过 cargo checkcargo run 观察编译与运行区别
posted on 2026-05-06 22:30  小樊童鞋  阅读(1)  评论(0)    收藏  举报