当前位置: 首页 > news >正文

第 2 章:所有权与借用

第 2 章:所有权与借用

第 2 章:所有权与借用

2.1 所有权规则

Rust 的内存安全核心在于所有权系统。每个值都有一个所有者,且同一时刻只能有一个所有者。

  • 变量离开作用域时值会被释放
  • 赋值时发生移动,而不是复制(对于非 Copy 类型)
let s1 = String::from("hello");
let s2 = s1; // s1 的所有权移动到 s2

2.2 可变性与借用

Rust 强制借用规则:

  • 一个不可变引用 &T 或多个不可变引用
  • 一个可变引用 &mut T
  • 同一时间只能存在一个可变引用,不能与不可变引用混合
let mut s = String::from("hello");
let r1 = &s;
let r2 = &s;
println!("{} {}", r1, r2);
let r3 = &mut s;

2.3 引用生命周期

生命周期用于保证引用在使用时仍然有效。

fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {if x.len() > y.len() { x } else { y }
}
  • <'a> 定义生命周期参数
  • 函数签名中标记引用的生命周期关系

2.4 所有权与函数调用

函数参数传递会移动或借用值:

fn takes_ownership(s: String) {println!("{}", s);
}fn makes_copy(x: i32) {println!("{}", x);
}
  • String 会移动所有权
  • i32Copy 类型,可复制

2.5 案例练习

练习建议:

  • 实现一个函数接收 String 并返回其长度
  • 编写一个函数返回两个字符串中较长的那个
  • 观察不同借用方式下编译器如何报错
http://www.jsqmd.com/news/766395/

相关文章:

  • osquery端点防护终极指南:EDR功能实现与威胁狩猎
  • 告别重复劳动:用Xpedition的EDIF接口,5分钟搞定Symbol库的迁移与备份
  • 2026年苹果系统将推“Extensions”功能,AI服务选择不再局限于ChatGPT!
  • 【MCP 2026跨服务器编排权威指南】:20年SRE亲授7大生产级任务调度模式与避坑清单
  • 在Node.js服务中集成Taotoken实现稳定的大模型API调用
  • 创维E900V22D刷Armbian终极指南:从零开始打造你的家庭服务器
  • CXPatcher:如何让Mac上的Windows游戏性能提升40%?终极CrossOver优化指南
  • 大模型幻觉深度解析:成因、落地危害与工程级解决方案
  • Docker Cheat Sheet:开发环境Docker配置最佳实践
  • 蓝桥杯省赛游记 2025
  • VSCode 2026 AI调试配置失效?3分钟诊断流程图+5类高频报错代码签名映射表,现在不配明天就兼容中断
  • PaddleOCR识别+NLP信息抽取实战:如何用Python把身份证照片变成结构化JSON数据?
  • 20254126王溪泽 实验三报告
  • 私有网络的地址范围是什么?
  • 从‘删除最后一个元素’说起:深入理解JavaScript数组操作的性能与副作用
  • TIC-80终极指南:如何突破技术限制创造更丰富的游戏体验
  • 当MCP 2026遭遇供应链投毒:如何在37秒内完成漏洞定位→影响面测绘→策略注入→结果验证全链路?
  • 终极指南:DesignPatternsPHP结构型模式如何解决复杂架构设计难题
  • MCP 2026日志分析智能告警配置全链路拆解,从LogParser到AlertCorrelation Engine的8个关键参数调优
  • 2026年安徽摩托车检测机构最新排行榜:摩托车检测企业求推荐/摩托车检测优质公司推荐榜单/摩托车检测品牌机构 - 品牌策略师
  • 现实增强滤镜漏洞:软件测试视角下的风险与应对
  • LobeChat数据库设计:完整表结构关系模型解析
  • ARM Cortex-M33 安全实战:手把手教你用 SAU 划分安全与非安全内存区域
  • mermaid流程图在线工具
  • 2026年阿里云快速教程:OpenClaw怎么搭建及大模型API Key、Skill集成全攻略
  • 在Obsidian中集成AI助手:BMO Chatbot插件配置与实战指南
  • 在线水印怎么去除?2026实测在线去水印工具推荐与方法汇总 - 科技热点发布
  • 创业公司如何利用taotoken聚合api快速验证多个ai产品创意
  • 暗物质测试方案:从软件测试视角探索宇宙谜题
  • Docker 27集群部署实战:7行核心代码+3层安全加固+5分钟冷启动,产线已验证