【Rust每周一知】如何理解Rust中的可变与不可变?

基本概念

Rust的所有权(ownership)机制规定:Rust中的每个值都有一个被称为其所有者(owner)的变量,并且有且只能有唯一的所有者。

Rust中的引用(references)允许使用值但不获取其所有权,这种操作也被称为所有权借用(borrowing)。通过&T&mut T将引用分为两种:

  • 不可变引用(&T),也被称为共享引用,所有者可以读取引用指向的数据,但不能修改数据。

  • 可变引用(&mut T)也被称为独占引用,不能有别名,在同一时刻,同一个值不可能存在别的引用。

fn main() {

    let mut s = String::from("hello");
    let r1 = &mut s;
    let r2 = &mut s; // ERROR: 可变引用,不能有别名
    println!("{}, {}", r1, r2);
    
    let x = 1;
    let y = &mut x; // ERROR: 当有一个不可变值时,不能可变的借用它
}

Rust内存安全性基于以下规则:给定对象T,则只能具有以下之一:

  • 对象有几个不可变的引用(

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值