diff --git a/src/basic/match-pattern/pattern-match.md b/src/basic/match-pattern/pattern-match.md index 6be283cf..c5380db3 100644 --- a/src/basic/match-pattern/pattern-match.md +++ b/src/basic/match-pattern/pattern-match.md @@ -54,7 +54,7 @@ while let Some(top) = stack.pop() { } ``` -这个例子会打印出 `3`、`2` 接着是 `1`。`pop` 方法取出动态数组的最后一个元素并返回 `Some(value)`,如果动态数组是空的,它返回 `None`。对于`while`来说,只要 `pop` 返回 `Some` 就会一直不停的循环。一旦其返回 `None``,while` 循环停止。我们可以使用 `while let` 来弹出栈中的每一个元素。 +这个例子会打印出 `3`、`2` 接着是 `1`。`pop` 方法取出动态数组的最后一个元素并返回 `Some(value)`,如果动态数组是空的,它返回 `None`。对于`while`来说,只要 `pop` 返回 `Some` 就会一直不停的循环。一旦其返回 `None`,`while` 循环停止。我们可以使用 `while let` 来弹出栈中的每一个元素。 你也可以用`loop` + `if let` 或者`match`来实现,但是会更加啰嗦。 @@ -74,7 +74,7 @@ for (index, value) in v.iter().enumerate() { ```rust let PATTERN = EXPRESSION; ``` -是的,这个语句我们已经用了无数次了,它也是一种模式匹配: +是的, 该语句我们已经用了无数次了,它也是一种模式匹配: ```rust let x = 5; ``` @@ -84,7 +84,7 @@ let x = 5; let (x, y, z) = (1, 2, 3); ``` -上面将一个元组与模式进行匹配(**模式和值的类型比较相同!**),然后把`1,2,3`分别绑定到`x,y,z`上。 +上面将一个元组与模式进行匹配(**模式和值的类型必需相同!**),然后把`1,2,3`分别绑定到`x,y,z`上。 因为模式匹配要求两边的类型必须相同,导致了下面的代码会报错: ```rust