摘要:Rust 是一门由 Mozilla 主导开发、于 2015 年发布 1.0 稳定版的系统级编程语言,以内存安全、零成本抽象和无畏并发为核心特性。本文从 Rust 的核心特性出发,介绍其典型应用场景(操作系统、区块链、游戏引擎、Web 后端等),并通过 Hello World 和猜数字游戏两个示例演示基础语法与工具链用法,帮助读者快速上手并理解 Rust 的设计理念。

1. 引言

Rust 是一门由 Mozilla 主导开发、于 2015 年发布 1.0 稳定版的系统级编程语言。它旨在解决 C/C++ 长期存在的内存安全问题,同时保持接近 C 语言的运行性能。自诞生以来,Rust 连续多年在 Stack Overflow 开发者调查中被评为「最受喜爱的编程语言」,并被广泛应用于操作系统、区块链、游戏引擎、Web 后端等众多领域。

2. Rust 的核心特性

2.1 内存安全(无需垃圾回收)

Rust 最突出的特点是其所有权(Ownership)系统。通过编译期的所有权、借用(Borrowing)和生命周期(Lifetime)检查,Rust 在编译阶段就能捕获悬垂指针、空指针、数据竞争等内存错误,无需像 Java 那样依赖垃圾回收器(GC),也无需像 C/C++ 那样手动管理内存。

2.2 零成本抽象

Rust 提供了现代语言的高级抽象能力(如泛型、trait、模式匹配),但这些抽象在编译期会被消除,不会带来运行时开销。这意味着你可以写出既优雅又高效的代码。

2.3 无畏并发(Fearless Concurrency)

Rust 的所有权系统同样适用于多线程场景。编译器会在编译期阻止数据竞争,让并发编程变得更加安全可靠。配合标准库提供的线程、通道(Channel)和原子类型,开发者可以轻松编写正确的并发程序。

2.4 强大的工具链

Rust 官方提供了完善的工具链:

  • cargo:包管理和构建工具,类似 Java 的 Maven/Gradle。
  • rustfmt:代码格式化工具。
  • clippy:代码静态检查工具,帮助发现潜在问题。
  • rustdoc:文档生成工具。

3. Rust 的典型应用场景

  • 操作系统与底层开发:如 Redox OS、Fuchsia OS 的部分组件。
  • 区块链与 Web3:Solana、Polkadot、Substrate 等知名项目均使用 Rust 开发。
  • 游戏引擎:如 Bevy、Amethyst。
  • Web 后端:通过 Actix-web、Rocket、Axum 等框架构建高性能服务。
  • 命令行工具:如 ripgrep、fd、bat 等效率工具。
  • 嵌入式开发:Rust 支持无标准库(no_std)环境,适合资源受限的嵌入式场景。

4. 快速上手:Hello World

安装 Rust 推荐使用官方工具 rustup

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装完成后,创建一个新项目:

cargo new hello_rust
cd hello_rust

编辑 src/main.rs

fn main() {
    println!("Hello, Rust!");
}

运行程序:

cargo run

输出结果:

Hello, Rust!

5. 一个简单的示例:猜数字游戏

下面是一个经典的猜数字小游戏,展示了 Rust 的输入输出、随机数、循环和模式匹配:

use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main() {
    println!("猜一个数字!");

    let secret_number = rand::thread_rng().gen_range(1..=100);

    loop {
        println!("请输入你的猜测:");

        let mut guess = String::new();
        io::stdin()
            .read_line(&mut guess)
            .expect("读取输入失败");

        let guess: u32 = match guess.trim().parse() {
            Ok(num) => num,
            Err(_) => {
                println!("请输入一个数字!");
                continue;
            }
        };

        match guess.cmp(&secret_number) {
            Ordering::Less => println!("太小了!"),
            Ordering::Greater => println!("太大了!"),
            Ordering::Equal => {
                println!("恭喜你,猜对了!");
                break;
            }
        }
    }
}

6. 总结

Rust 以其内存安全、高性能和现代语言特性,正在成为系统编程领域的重要选择。虽然它的学习曲线相对陡峭(尤其是所有权和生命周期概念),但一旦掌握,你将获得极大的开发效率和代码可靠性。无论你是系统程序员、Web 开发者还是区块链工程师,Rust 都值得投入时间学习。

7. 参考资料与延伸阅读

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐