|
|
@ -87,6 +87,21 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
|
|
该语句块是表达式的原因是:它的最后一行是表达式,返回了 `x + 1` 的值,注意 `x + 1` 不能以分号结尾,否则就会从表达式变成语句, **表达式不能包含分号**。这一点非常重要,一旦你在表达式后加上分号,它就会变成一条语句,再也**不会**返回一个值,请牢记!
|
|
|
|
该语句块是表达式的原因是:它的最后一行是表达式,返回了 `x + 1` 的值,注意 `x + 1` 不能以分号结尾,否则就会从表达式变成语句, **表达式不能包含分号**。这一点非常重要,一旦你在表达式后加上分号,它就会变成一条语句,再也**不会**返回一个值,请牢记!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
最后,表达式如果不返回任何值,会隐式地返回一个 [`()`](https://course.rs/basic/base-type/char-bool.html#单元类型) 。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
|
|
|
|
assert_eq!(ret_unit_type(), ())
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fn ret_unit_type() {
|
|
|
|
|
|
|
|
let x = 1;
|
|
|
|
|
|
|
|
// if 语句块也是一个表达式,因此可以用于赋值,也可以直接返回
|
|
|
|
|
|
|
|
if (x > 1) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 课后练习
|
|
|
|
## 课后练习
|
|
|
|
|
|
|
|
|
|
|
|