可以在Rust中进行以下绑定(bind):
let &mut a = &mut 5;
但这到底是什么意思?例如,
let a = &mut 5
创建一个&mut i32
类型的不可变绑定(bind),let mut a = &mut 5
创建一个&mut i32
类型的可变绑定(bind)。那let &mut
呢? 最佳答案
测试事物类型的一种简单方法是将其分配给错误的类型:
let _: () = a;
在这种情况下,该值为“整数变量”或按值整数。它是不可变的(如对
a += 1
的测试所示)。这是因为您使用的是解构语法。您正在将
&mut 5
与&mut _
进行模式匹配,就像您编写了match &mut 5 { &mut a => {
// rest of code
} };
因此,您要添加一个可变引用并立即对其取消引用。
要将可变引用绑定(bind)到值,您可以执行
let ref mut a = 5;
这在进行结构分解以引用多个内部值时很有用。
关于syntax - Let&mut语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31298802/