当从块语句中赋值时,Rust 是否有一种优雅的方式来进一步操作值?

Does Rust have an elegant way to manipulate values further when assigning a value from a block statement?

我正在尝试在块中声明一个带有表达式的变量。

let y = {
    let x = 3;
    x + 1
};

下面的代码等于 4。据我了解,块中的最后一个元素不能有分号,因为这使该表达式成为一个语句。

如果我想进一步操纵这些值怎么办?例如,如果我想实例化两个变量并将它们相乘怎么办? Rust 是否有一种优雅的方式来处理这个问题,或者我是否需要将其拆分为多个表达式?

伪代码:

//An attempt to multiply two instantiated values in a block
let y = {
    let z = 2;
    let x = 3;
    x + 1;
    x * z
};

伪代码的问题在于 x 是不可变的——它无法更改。为了达到预期的效果,您必须使 x 可变并且可以使用 x += 1 增加它,而不是 x + 1:

let y = {
    let z = 2;
    let mut x = 3;
    x += 1;
    x * z
};

将 return 8.