mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2025-01-30 22:20:12 +08:00
Improved Ch13
This commit is contained in:
parent
0434b39837
commit
7e392f4bdb
@ -1,24 +1,24 @@
|
||||
# 函数式编程语言特性:迭代器与闭包
|
||||
|
||||
Rust 的设计从许多现有的语言和技术中获得了灵感,而一个显著的影响,便是 *函数式编程(functional programming)*。以函数方式编程,通常包括了通过把函数传入到参数中,或是从其他函数返回他们,以及将函数赋值给变量以便稍后执行,诸如此类的操作,而将函数作为一些值加以运用(programming in a functional style often includes using functions as values by using functions as values by passing them in arguments, returning them from another functions, assigning them to variables for later execution, and so forth)。
|
||||
Rust 的设计曾受到许多现有的语言和技术的启发,而一个显著的影响,便是 *函数式编程,functional programming*。以函数式风格编程,通常包括了通过把函数传入到参数中,或从其他函数返回函数,及将函数赋值给变量以便稍后执行等等,而将函数当作值使用,programming in a functional style often includes using functions as values by using functions as values by passing them in arguments, returning them from another functions, assigning them to variables for later execution, and so forth。
|
||||
|
||||
本章中,这里不会就函数式编程的问题为何或不为何加以分辨,而相反这里会讨论 Rust 的一些,与许多通常被指为函数式编程语言中的特性,相类似的特性。
|
||||
本章中,咱们不会讨论函数式编程是什么或不是什么的问题,而将讨论与许多通常被指为函数式编程语言中特性类似的 Rust 特性。
|
||||
|
||||
更具体地讲,这里会涉及到:
|
||||
更具体地说,咱们将讲到:
|
||||
|
||||
- *闭包(closures)*,一种可存储在变量中、类似函数的结构体;
|
||||
- *迭代器(iterators)*,一种处理元素序列的方式(a way of processing a series of elements);
|
||||
- 怎样运用闭包与迭代器,来改进第 12 章中的那个 I/O 项目;
|
||||
- 闭包与迭代器的性能问题(剧透警告:比起可能想到的,他们要快!)。
|
||||
- *闭包,closures*,可存储在变量中、类似函数的结构体;
|
||||
- *迭代器,iterators*,处理元素序列的方式,a way of processing a series of elements;
|
||||
- 如何使用闭包与迭代器,来改进第 12 章中的那个 I/O 项目;
|
||||
- 闭包与迭代器的性能问题(剧透警告:他们比咱们可能想的要快!)。
|
||||
|
||||
到这里咱们已经涵盖到一些别的 Rust 特性,诸如模式匹配与枚举等,那些特性也是受函数式编程影响的。由于掌握闭包与迭代器,是进行惯用、快速 Rust 代码编写的一个重要方面,因此这里将把这整章,都用来讲解他们。
|
||||
咱们已经讲到过其他的一些 Rust 特性,诸如模式匹配与枚举等,也是受函数式编程影响的。由于掌握闭包与迭代器,是编写惯用、快速 Rust 代码的重要方面,因此咱们将把这整章,都用来讲解他们。
|
||||
|
||||
|
||||
## 闭包:捕获其环境的一些匿名函数
|
||||
## 闭包:捕获其环境的匿名函数
|
||||
|
||||
**Closures: Anonymous Functions that Capture Their Environment**
|
||||
|
||||
Rust 的闭包,是一些可保存在变量中,或作为参数传递给另一些函数的匿名函数。可在一处创建出闭包,并于随后在别处调用该闭包,而在不同上下文中执行他(evaluate it)。与函数不同,闭包可以从其被定义的作用域,捕获到一些值。随后这里就会就闭包的这些特性,如何实现代码复用与程序行为的定制,而加以演示(unlike functions, closures can capture values from the scope in which they're defined. We'll demonstrate how these closure features allow for code reuse and behavior customization)。
|
||||
Rust 的闭包,是咱们可将其保存在变量中,或将其作为参数传递给其他函数的匿名函数。咱们可在一处创建出闭包,随后在别处调用该闭包,而在不同上下文中执行他,evaluate it。与函数不同,闭包可以从其被定义的作用域,捕获到一些值。随后这里就会就闭包的这些特性,如何实现代码复用与程序行为的定制,而加以演示(unlike functions, closures can capture values from the scope in which they're defined. We'll demonstrate how these closure features allow for code reuse and behavior customization)。
|
||||
|
||||
|
||||
### 使用闭包对环境进行捕获
|
||||
|
Loading…
Reference in New Issue
Block a user