From bcdf7bb25eb06b16ce9fdc31d9da16a7a73e634b Mon Sep 17 00:00:00 2001 From: sunface Date: Sat, 23 Apr 2022 10:06:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A0=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC=E8=A1=A8=E8=BE=BE=E5=BC=8F=E7=9A=84=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/basic/base-type/statement-expression.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/basic/base-type/statement-expression.md b/src/basic/base-type/statement-expression.md index e5d6ce4e..569c7779 100644 --- a/src/basic/base-type/statement-expression.md +++ b/src/basic/base-type/statement-expression.md @@ -87,6 +87,21 @@ fn main() { 该语句块是表达式的原因是:它的最后一行是表达式,返回了 `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) { + + } +} +``` ## 课后练习