让 &mut 语法
Let &mut syntax
可以在 Rust 中进行以下绑定:
let &mut a = &mut 5;
但这到底是什么意思呢?例如,let a = &mut 5
创建类型 &mut i32
的不可变绑定,let mut a = &mut 5
创建类型 &mut i32
的可变绑定。 let &mut
呢?
测试某物类型的一种简单方法是将其分配给错误的类型:
let _: () = a;
在这种情况下,该值为 "integral variable" 或按值整数。它是不可变的(如使用 a += 1
进行的测试所示)。
这是因为您正在使用解构语法。您正在将 &mut 5
与 &mut _
进行模式匹配,就像您编写
match &mut 5 { &mut a => {
// rest of code
} };
因此您正在添加一个可变引用并立即取消引用它。
要将可变引用绑定到一个值,您可以这样做
let ref mut a = 5;
这在解构中很有用,可以引用多个内部值。
可以在 Rust 中进行以下绑定:
let &mut a = &mut 5;
但这到底是什么意思呢?例如,let a = &mut 5
创建类型 &mut i32
的不可变绑定,let mut a = &mut 5
创建类型 &mut i32
的可变绑定。 let &mut
呢?
测试某物类型的一种简单方法是将其分配给错误的类型:
let _: () = a;
在这种情况下,该值为 "integral variable" 或按值整数。它是不可变的(如使用 a += 1
进行的测试所示)。
这是因为您正在使用解构语法。您正在将 &mut 5
与 &mut _
进行模式匹配,就像您编写
match &mut 5 { &mut a => {
// rest of code
} };
因此您正在添加一个可变引用并立即取消引用它。
要将可变引用绑定到一个值,您可以这样做
let ref mut a = 5;
这在解构中很有用,可以引用多个内部值。