|
|
@ -4,11 +4,11 @@
|
|
|
|
> <br>
|
|
|
|
> <br>
|
|
|
|
> commit 426f3e4ec17e539ae9905ba559411169d303a031
|
|
|
|
> commit 426f3e4ec17e539ae9905ba559411169d303a031
|
|
|
|
|
|
|
|
|
|
|
|
最后我们将探索一些有关函数和闭包的高级功能:函数指针以及返回值闭包。
|
|
|
|
接下来我们将探索一些有关函数和闭包的高级功能:函数指针以及返回值闭包。
|
|
|
|
|
|
|
|
|
|
|
|
### 函数指针
|
|
|
|
### 函数指针
|
|
|
|
|
|
|
|
|
|
|
|
我们讨论过了如何向函数传递闭包;也可以向函数传递常规函数!这在我们希望传递已经定义的函数而不是重新定义闭包作为参数是很有用。通过函数指针允许我们使用函数作为另一个函数的参数。函数的类型是 `fn` (使用小写的 “f” )以免与 `Fn` 闭包 trait 相混淆。`fn` 被称为 **函数指针**(*function pointer*)。指定参数为函数指针的语法类似于闭包,如示例 19-27 所示:
|
|
|
|
我们讨论过了如何向函数传递闭包;也可以向函数传递常规函数!这在我们希望传递已经定义的函数而不是重新定义闭包作为参数时很有用。通过函数指针允许我们使用函数作为另一个函数的参数。函数的类型是 `fn` (使用小写的 “f” )以免与 `Fn` 闭包 trait 相混淆。`fn` 被称为 **函数指针**(*function pointer*)。指定参数为函数指针的语法类似于闭包,如示例 19-27 所示:
|
|
|
|
|
|
|
|
|
|
|
|
<span class="filename">文件名: src/main.rs</span>
|
|
|
|
<span class="filename">文件名: src/main.rs</span>
|
|
|
|
|
|
|
|
|
|
|
|