File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44let tup = (0u8 , 1u8 );
55let (x , y ) = tup ;
66```
7- 而且我们需要知道的是,一个模式中如果出现了和前面的同名变量 ,则这个变量会在当前作用域里被模式中的值覆盖掉。比如:
7+ 而且我们需要知道的是,一个模式中如果出现了和前面同名的变量 ,则这个变量会在当前作用域里被模式中的值覆盖掉。比如:
88
99``` rust
1010let x = 1 ;
@@ -24,11 +24,11 @@ x: c c: c
2424x: 1
2525```
2626
27- 在以上代码中,match作用域里的` x ` 这个变量被覆盖成了` 'c' ` ,而出了这个作用域之后,变量又恢复成了原来的值 。这和变量绑定的行为是一致的。
27+ 在以上代码中,match作用域里的` x ` 这个变量被覆盖成了` 'c' ` ,而出了这个作用域,变量会恢复成原来的值 。这和变量绑定的行为是一致的。
2828
2929## 更强大的解构
3030
31- 在上一节里,我们初步了解了模式匹配在解构` enum ` 时候的便利性,事实上,在Rust中模式可以被用来对任何复合类型进行解构——struct/tuple/enum。现在我们要进行一个复杂点的例子 ,对` struct ` 进行解构。
31+ 在上一节里,我们初步了解了模式匹配在解构` enum ` 时候的便利性,事实上,在Rust中模式可以被用来对任何复合类型进行解构——struct/tuple/enum。现在我们要讲述一个复杂点的例子 ,对` struct ` 进行解构。
3232
3333首先,我们可以对一个结构体进行标准的解构:
3434
@@ -133,7 +133,7 @@ match x {
133133
134134## ref 和 ref mut
135135
136- 前面我们了解到,当被模式匹配命中的时候,未实现` Copy ` 的类型会被默认的move掉,因此,原owner就不再持有其所有权。但是有些时候,我们只想要从拿到一个变量的 (可变)引用,而不想将其move出作用域,怎么做呢?答:用` ref ` 或者` ref mut ` 。
136+ 前面我们了解到,当被模式匹配命中的时候,未实现` Copy ` 的类型会被默认的move掉,因此,原owner就不再持有其所有权。但是有些时候,我们只想要从中拿到一个变量的 (可变)引用,而不想将其move出作用域,怎么做呢?答:用` ref ` 或者` ref mut ` 。
137137
138138``` rust
139139let mut x = 5 ;
@@ -158,7 +158,7 @@ match x {
158158}
159159```
160160
161- 如代码所示,x的值被赋予了e 。
161+ 如代码所示,e被赋予了x的值 。
162162
163163当然,变量绑定是一个极其有用的语法,下面是一个来自官方doc里的例子:
164164
You can’t perform that action at this time.
0 commit comments