可以在Rust中进行以下绑定:
let &mut a = &mut 5;
Run Code Online (Sandbox Code Playgroud)
但究竟是什么意思呢?例如,let a = &mut 5创建一个不可变的类型绑定&mut i32,let mut a = &mut 5创建一个类型的可变绑定&mut i32.怎么样let &mut?
Vee*_*rac 10
测试某种类型的简单方法是将其分配给错误的类型:
let _: () = a;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,该值是"整数变量"或整数值.它不可变(用于测试a += 1节目).
这是因为您正在使用解构语法.你是模式匹配你&mut 5的&mut _,就像你写的那样
match &mut 5 { &mut a => {
// rest of code
} };
Run Code Online (Sandbox Code Playgroud)
因此,您正在添加一个可变引用并立即解除引用它.
要将可变引用绑定到值,您可以这样做
let ref mut a = 5;
Run Code Online (Sandbox Code Playgroud)
这在解构时很有用,可以引用多个内部值.