update ch03-03-how-functions-work.md

pull/246/head
xiaohulu 6 years ago
parent e79a02dd96
commit a608039c82

@ -147,7 +147,7 @@ error: expected expression, found statement (`let`)
`let y = 6` 语句并不返回值,所以没有可以绑定到 `x` 上的值。这与其他语言不同,例如 C 和 Ruby它们的赋值语句会返回所赋的值。在这些语言中可以这么写 `x = y = 6`,这样 `x``y` 的值都是 `6`Rust 中不能这样写。 `let y = 6` 语句并不返回值,所以没有可以绑定到 `x` 上的值。这与其他语言不同,例如 C 和 Ruby它们的赋值语句会返回所赋的值。在这些语言中可以这么写 `x = y = 6`,这样 `x``y` 的值都是 `6`Rust 中不能这样写。
表达式会计算出一些值,并且你将编写的大部分代码是由表达式组成的。考虑一个简单的数学运算,比如 `5 + 6`,这是一个表达式并计算出值 `11`。表达式可以是语句的一部分:在示例 3-1 中,语句 `let y = 6;` 中的 `6` 是一个表达式,它计算出的值是 `6`。函数调用是一个表达式。宏调用是一个表达式。我们用来创建新作用域的大括号(代码块),`{}`,也是一个表达式,例如: 表达式会计算出一些值,并且你将编写的大部分 Rust 代码是由表达式组成的。考虑一个简单的数学运算,比如 `5 + 6`,这是一个表达式并计算出值 `11`。表达式可以是语句的一部分:在示例 3-1 中,语句 `let y = 6;` 中的 `6` 是一个表达式,它计算出的值是 `6`。函数调用是一个表达式。宏调用是一个表达式。我们用来创建新作用域的大括号(代码块),`{}`,也是一个表达式,例如:
<span class="filename">文件名: src/main.rs</span> <span class="filename">文件名: src/main.rs</span>
@ -209,7 +209,9 @@ The value of x is: 5
let x = 5; let x = 5;
``` ```
其次,`five` 函数没有参数并定义了返回值类型,不过函数体只有单单一个 `5` 也没有分号,因为这是一个表达式,我们想要返回它的值。让我们看看另一个例子: 其次,`five` 函数没有参数并定义了返回值类型,不过函数体只有单单一个 `5` 也没有分号,因为这是一个表达式,我们想要返回它的值。
让我们看看另一个例子:
<span class="filename">文件名: src/main.rs</span> <span class="filename">文件名: src/main.rs</span>
@ -225,7 +227,7 @@ fn plus_one(x: i32) -> i32 {
} }
``` ```
运行代码会打印出 `The value of x is: 6`。如果在包含 `x + 1`那一的结尾加上一个分号,把它从表达式变成语句后会怎样呢? 运行代码会打印出 `The value of x is: 6`如果在包含 `x + 1` 的行尾加上一个分号,把它从表达式变成语句,我们将看到一个错误。
<span class="filename">文件名: src/main.rs</span> <span class="filename">文件名: src/main.rs</span>

Loading…
Cancel
Save