Rust 引用

分类:Rust     发布时间:2024-08-16     最后更新:2024-08-16     浏览数:614
用代码和注释来捋一捋 Rust 的引用

不可变引用

引用 (Reference) – 引用其他数据的不可变指针。

当引用指向某个值,我们称为“借用”这个值,因为是被不可变的借用,所以不能被修改,也不能移动。

借用一直持续到生命周期结束,即离开作用域。

fn main() {
    let mut a = 4; // 定义变量 a 并赋值为 4
    let ref_a: &i32 = &a; // ref_a 借用了 a,ref_a 指向 a。
    println!("{}", a); // `a` 还可以继续使用(可读)
    println!("{}", *ref_a); // 解引用(获取值)
    a = 3; // 编译报错,因为 a 已被 ref_a 借走了(不可写)
    *ref_a = 6; // 编译报错,因为 ref_a 是不可变引用
}

可变引用

可变引用 (Mutable reference)。

当一个变量被可变地借用时,也不可使用。

fn main() {
    let mut a = 4; // 定义变量 a 并赋值为 4
    let ref_a: &mut i32 = &mut a; // ref_a 借用了 a,ref_a 指向 a。之后 a 不可用
    println!("{}", a); // 编译报错,a 被可变借用。
    println!("{}", *ref_a); // 解引用(获取值)
    a = 3; // 编译报错,因为 a 已被 ref_a 可变借走了
    *ref_a = 6; // 解引用并重新赋值
    println!("{}", *ref_a); // 解引用(获取值)
}

参考

Y分钟速成X其中 X=Rust

上一篇: Web 打印服务之实现篇 下一篇: 我知道的之 encodeURI