在Rust 的情况下,可以进行以下粘合:
let &mut a = &mut 5;
但这到底意味着什么?例如,let a = &mut 5
创建&mut i32
类型的不可变绑定,let mut a = &mut 5
创建&mut i32
类型的可变绑定.let &mut
呢?
在Rust 的情况下,可以进行以下粘合:
let &mut a = &mut 5;
但这到底意味着什么?例如,let a = &mut 5
创建&mut i32
类型的不可变绑定,let mut a = &mut 5
创建&mut i32
类型的可变绑定.let &mut
呢?
测试某物类型的一个简单方法是将其分配到错误的类型:
let _: () = a;
在这种情况下,该值是一个"整数变量",或一个按值整数.它是不可变的(如a += 1
次测试所示).
这是因为您使用的是destructuring syntax.你将&mut 5
与&mut _
进行模式匹配,就像你写的一样
match &mut 5 { &mut a => {
// rest of code
} };
因此,您正在添加一个可变引用,并立即取消对它的引用.
要将可变引用绑定到值,可以执行以下操作:
let ref mut a = 5;
这在分解 struct 以引用多个内部值时非常有用.