|
|
@ -219,7 +219,7 @@ fn generate_workout(intensity: u32, random_number: u32) {
|
|
|
|
|
|
|
|
|
|
|
|
<span class="caption">示例 13-6:调用定义的 `expensive_closure`</span>
|
|
|
|
<span class="caption">示例 13-6:调用定义的 `expensive_closure`</span>
|
|
|
|
|
|
|
|
|
|
|
|
现在耗时的计算只在一个地方被调用,并只会在需要结果的时候执行改代码。
|
|
|
|
现在耗时的计算只在一个地方被调用,并只会在需要结果的时候执行该代码。
|
|
|
|
|
|
|
|
|
|
|
|
然而,我们又重新引入了示例 13-3 中的问题:仍然在第一个 `if` 块中调用了闭包两次,这调用了慢计算代码两次而使得用户需要多等待一倍的时间。可以通过在 `if` 块中创建一个本地变量存放闭包调用的结果来解决这个问题,不过闭包可以提供另外一种解决方案。我们稍后会讨论这个方案,不过目前让我们首先讨论一下为何闭包定义中和所涉及的 trait 中没有类型注解。
|
|
|
|
然而,我们又重新引入了示例 13-3 中的问题:仍然在第一个 `if` 块中调用了闭包两次,这调用了慢计算代码两次而使得用户需要多等待一倍的时间。可以通过在 `if` 块中创建一个本地变量存放闭包调用的结果来解决这个问题,不过闭包可以提供另外一种解决方案。我们稍后会讨论这个方案,不过目前让我们首先讨论一下为何闭包定义中和所涉及的 trait 中没有类型注解。
|
|
|
|
|
|
|
|
|
|
|
|