我正试图在一个块中用表达式声明一个变量。
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
};
将返回8。