Keyword mut[][src]

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

可变裸指针的工作方式与可变引用非常相似,但有可能无法指向有效的 object。 语法为 *mut Type

可以在 Reference 中找到更多关于资源 0 引用和指针的信息。