Expand description
可变变量,引用或指针。
mut
可以在多种情况下使用。
第一种是可变变量,它可以在任何可以将值绑定到变量名的地方使用。一些例子:
// 函数的参数列表中的可变变量。
fn foo(mut x: u8, y: u8) -> u8 {
x += y;
x
}
// 修改可变变量。
let mut a = 5;
a = 6;
assert_eq!(foo(3, 4), 7);
assert_eq!(a, 6);
Run第二种是可变引用。
它们可以从 mut
变量创建,并且必须是唯一的:其他变量不能有可变引用,也不能有共享引用。
// 采取可变引用。
fn push_two(v: &mut Vec<u8>) {
v.push(2);
}
// 可变引用不能用于非可变变量。
let mut v = vec![0, 1];
// 通过可变引用。
push_two(&mut v);
assert_eq!(v, vec![0, 1, 2]);
Runⓘ
let mut v = vec![0, 1];
let mut_ref_v = &mut v;
#[allow(unused)]
let ref_v = &v;
mut_ref_v.push(2);
Run可变裸指针的工作方式与可变引用非常相似,但增加了不指向有效对象的可能性。
语法是 *mut Type
。
有关可变引用和指针的更多信息,请参见 Reference。