Rust 语言学习手册

免费学习 系统级编程 内存安全

Rust学习手册《闭包(Closure)》:闭包是可以捕获环境变量的匿名函数,类似于 lambda 表达式。 **定义与调用:** ```rust let add_one = |x| x + 1; let result = add_one(5); // 多行 let add = ...

闭包

闭包(Closure)

【详细说明 & 代码示例】
闭包是可以捕获环境变量的匿名函数,类似于 lambda 表达式。 **定义与调用:** ```rust let add_one = |x| x + 1; let result = add_one(5); // 多行 let add = |a, b| { a + b }; ``` **捕获环境:** ```rust let x = 4; let equal_to_x = |z| z == x; let y = 4; assert!(equal_to_x(y)); ``` **闭包捕获方式:** 根据使用情况自动推断为借用、可变借用或移动(`move` 关键字)。 ```rust let s = String::from("hello"); let takes_ownership = move || { println!("{}", s); }; // s 被移动到闭包中 ``` **闭包类型:** 实现 `Fn`, `FnMut`, `FnOnce` trait。 - `FnOnce`:获取所有权,只调用一次。 - `FnMut`:可变借用,可多次调用。 - `Fn`:不可变借用,可多次调用。 **闭包作为参数:** 使用泛型约束。 ```rust fn call_twice(f: F) where F: Fn() { f(); f(); } ```

学习提示:建议安装 Rust 工具链(rustup),使用 cargo 构建项目,并熟悉 rustc 编译器错误信息(Rust 的报错非常详细友好)。

全部章节目录(共 63 个知识点)

Rust 基础 (1个知识点)

所有权系统 (1个知识点)

借用与引用 (1个知识点)

生命周期 (1个知识点)

Cargo 与工具链 (2个知识点)

使用说明

  • • 本手册涵盖 Rust 从基础到并发、异步、Web 开发的完整知识体系
  • • 在搜索框输入关键词,快速定位相关知识点
  • • 点击条目标题进入详情页,查看详细说明与代码示例
  • • 页面按分类展示所有知识点,方便系统性学习
  • • 建议通过 Rust 官方文档(doc.rust-lang.org)加深理解