rust-by-practice/zh-CN/src/basic-types/statements-expressions.md

65 lines
1.0 KiB
Markdown

# 语句与表达式
### 示例
```rust,editable
fn main() {
let x = 5u32;
let y = {
let x_squared = x * x;
let x_cube = x_squared * x;
// 下面表达式的值将被赋给 `y`
x_cube + x_squared + x
};
let z = {
// 分号让表达式变成了语句,因此返回的不再是表达式 `2 * x` 的值,而是语句的值 `()`
2 * x;
};
println!("x is {:?}", x);
println!("y is {:?}", y);
println!("z is {:?}", z);
}
```
### 练习
1. 🌟🌟
```rust,editable
// 使用两种方法让代码工作起来
fn main() {
let v = {
let mut x = 1;
x += 2
};
assert_eq!(v, 3);
}
```
2. 🌟
```rust,editable
fn main() {
let v = (let x = 3);
assert!(v == 3);
}
```
3. 🌟
```rust,editable
fn main() {
let s = sum(1 , 2);
assert_eq!(s, 3);
}
fn sum(x: i32, y: i32) -> i32 {
x + y;
}
```
> 你可以在[这里](https://github.com/sunface/rust-by-practice/blob/master/solutions/basic-types/statements.md)找到答案(在 solutions 路径下)