add解构式赋值

pull/470/head
sunface 3 years ago
parent 7ddfcdb234
commit e03869e6aa

@ -1,4 +1,12 @@
# ChangeLog
记录一些值得注意的变更。
## 2022-02-25
- 新增 1.59 [版本说明](https://course.rs/appendix/rust-versions/1.59.html)
- 在变量绑定章节新增[解构式赋值](https://course.rs/basic/variable.html#解构式赋值)
## 2022-02-24 ## 2022-02-24
- 进阶中的enum/整数类型转换、newtype章节被合并到**深入类型**目录中 - 进阶中的enum/整数类型转换、newtype章节被合并到**深入类型**目录中
- 将 newtype 中的 Sized/DST 内容拆分成单独的章节,并扩展了相应内容 - 将 newtype 中的 Sized/DST 内容拆分成单独的章节,并扩展了相应内容

@ -112,6 +112,21 @@ fn main() {
} }
``` ```
### 解构式赋值
在 [Rust 1.59](https://course.rs/appendix/rust-versions/1.59.html) 版本后,我们可以在赋值语句的左式中使用元组、切片和结构体模式了。
```rust
let (a, b, c, d, e);
(a, b) = (1, 2);
[c, .., d, _] = [1, 2, 3, 4, 5];
Struct { e, .. } = Struct { e: 5, f: 3 };
assert_eq!([1, 2, 1, 4, 5], [a, b, c, d, e]);
```
这种使用方式跟之前的 `let` 保持了一致性,但是 `let` 会重新绑定,而这里仅仅是对之前绑定的变量进行再赋值。
需要注意的是,使用 `+=` 的赋值语句还不支持解构式赋值。
### 变量和常量之间的差异 ### 变量和常量之间的差异

Loading…
Cancel
Save