16、Rust 中的借用规则、生命周期与指针类型详解

Rust 中的借用规则、生命周期与指针类型详解

1. 借用规则

在 Rust 中,借用规则维护了引用的单一所有权语义,具体规则如下:
- 引用的生命周期不能长于其所引用的值。因为若引用存活时间更长,它将指向无效值。
- 若存在对某个值的可变引用,在该作用域内不允许有其他对同一值的引用(无论是可变还是不可变引用)。可变引用是独占借用。
- 若没有对某个值的可变引用,在该作用域内可以有任意数量的对同一值的不可变引用。

Rust 编译器中的借用检查器会分析这些借用规则。Rust 社区戏称处理借用错误为“与借用检查器战斗”。

2. 借用的实际应用
2.1 函数中的借用

在函数调用时,如果只是读取值,转移所有权意义不大且受限,调用函数后就无法再使用该变量。可以通过引用传递参数,修改以下三方面内容:
- 变量绑定需设为可变:

let mut s = String::from("Borrow"); 
  • 函数参数改为可变引用:
fn take_the_s(s: &mut String) { 
    s.push_str("ing"); 
} 
  • 调用函数时传递可变引用:
take_the_s(&mut s); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值