|
|
@ -369,7 +369,7 @@ You guessed: 5
|
|
|
|
|
|
|
|
|
|
|
|
让我们看看使用 `match` 表达式的例子。假设用户猜了 50,这时随机生成的秘密数字是 38。
|
|
|
|
让我们看看使用 `match` 表达式的例子。假设用户猜了 50,这时随机生成的秘密数字是 38。
|
|
|
|
|
|
|
|
|
|
|
|
比较 50 与 38 时,因为 50 比 38 要大,`cmp` 方法会返回 `Ordering::Greater`。`Ordering::Greater` 是 `match` 表达式得到的值。它检查第一个分支的模式,`Ordering::Less` 与 `Ordering::Greater`并不匹配,所以它忽略了这个分支的代码并来到下一个分支。下一个分支的模式是 `Ordering::Greater`,**正确** 匹配!这个分支关联的代码被执行,在屏幕打印出 `Too big!`。`match` 表达式会在第一次成功匹配后终止,因此在这种情况下不会查看最后一个分支。
|
|
|
|
比较 50 与 38 时,因为 50 比 38 要大,`cmp` 方法会返回 `Ordering::Greater`。`Ordering::Greater` 是 `match` 表达式得到的值。它检查第一个分支的模式,`Ordering::Less` 与 `Ordering::Equal`并不匹配,所以它忽略了这个分支的代码并来到下一个分支。下一个分支的模式是 `Ordering::Greater`,**正确** 匹配!这个分支关联的代码被执行,在屏幕打印出 `Too big!`。`match` 表达式会在第一次成功匹配后终止,因此在这种情况下不会查看最后一个分支。
|
|
|
|
|
|
|
|
|
|
|
|
然而,示例 2-4 的代码目前并不能编译,可以尝试一下:
|
|
|
|
然而,示例 2-4 的代码目前并不能编译,可以尝试一下:
|
|
|
|
|
|
|
|
|
|
|
|