cyrus reggie

# Rust

共 8 篇文章

2025

简述 Rust 中的闭包

为什么需要闭包? // 问题1:函数复用 // 没有闭包时,需要传入所有参数 fn add(x: i32, base: i32) -> i32 { x + base } // 有了闭包,可以部分应用 let base = 5; let add_five = |x| x + …

编程, rust
3 min

Rust 中的引用

引用:你的快递地址和包裹 想象这样一个场景:你在网上买了个漂亮的花瓶,快递公司需要把它送到你家。快递员需要知道两个信息: 你家的地址(引用) 花瓶本身(值) 为什么我们需要引用? 让我们看一个具体的问题: fn calculate_length(s: String) -> usize { …

编程, rust
5 min

Rust 函数式编程

让我用这种方式来讲解 Rust 的函数式编程概念: 引入问题 想象这样一个场景:你需要处理一个电商系统的订单数据。要求: 过滤出金额大于 100 的订单 计算这些订单的总金额 给每个订单加上 10% 的折扣 传统的命令式编程可能是这样: let mut total = 0; for order in …

编程, rust
2 min

Rust 生命周期

让我系统地分析 Rust 的生命周期: 问题场景: // 考虑这个场景:我们需要返回一个引用 fn longest(x: &str, y: &str) -> &str { if x.len() > y.len() { x } else { y } } // 编译错 …

编程, rust
2 min

深入理解 Rust 所有权机制

从一个常见问题说起 看这段在其他语言中很普通的代码: fn main() { let data = vec![1, 2, 3]; process_data(data); println!("{:?}", data); // 编译错误! } fn process_data(v: …

编程, rust
6 min

rust 闭包

从一个常见问题说起 假设你正在开发一个数据处理系统,需要对集合中的数据进行灵活的过滤和转换: let numbers = vec![1, 2, 3, 4, 5]; // 如何优雅地复用过滤逻辑? let even_numbers = ??? // 这里怎么写 let …

编程, rust
5 min

深入解释 Rust 中的 Result 和 Option 这两个核心类型

从一个实际问题开始 假设我们在写一个文件处理程序: fn read_config_file(path: &str) -> String { std::fs::read_to_string(path) // 这里会返回什么? } 这段代码看似简单,但隐藏着两个基本问题: 文件可能不存在 …

编程, rust
5 min

rust 中的属性宏

#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)] 这是 Rust 语言中的属性宏(attribute macro)声明,用于自动为数据结构实现一些常用的特性(traits)。让我详细解释每个部分: derive - …

编程, rust
2 min