Rust str 与 String 类型的区别
文章目录1.核心对比2.代码示例3.内存布局4.相互转换5.一句话总结Rust 中String和str的核心区别在于String是拥有所有权的、可增长的堆分配字符串str是借用的、不可变的字符串切片通常以str形式出现。1.核心对比维度Stringstr通常写作str所有权拥有字符串数据借用不拥有存储位置堆heap通常在静态区或借用自String可变性可变可增长、修改不可变大小固定大小指针 长度 容量动态大小DST必须通过引用使用创建方式String::from(hello)、hello.to_string()s[..]、hello字面量能否修改✅ 可以push_str、push、insert等❌ 不可修改典型用途需要拥有和修改字符串时只读借用、函数参数、字符串字面量2.代码示例// String拥有所有权可修改letmutsString::from(hello);s.push_str( world);// ✅ 可以修改println!({},s);// 输出: hello world// str借用不可修改lets2:strhello;// 字符串字面量类型是 static str// s2.push_str( world); // ❌ 编译错误// 从 String 获取 strlets3String::from(hello);letslice:strs3[..];// 借用整个字符串letslice2:strs3;// 也可以直接这样3.内存布局String: ┌─────────┬────────┬────────┐ │ ptr │ len │ cap │ 栈上24 字节 └────┬────┴────────┴────────┘ │ ▼ ┌─────────────────────────────┐ │ h e l l o │ 堆上实际数据 └─────────────────────────────┘ str: ┌─────────┬────────┐ │ ptr │ len │ 栈上16 字节 └────┬────┴────────┘ │ ▼ ┌─────────────────────────────┐ │ h e l l o │ 可能在静态区、堆或栈上 └─────────────────────────────┘4.相互转换转换方式String→strs或s.as_str()str→Strings.to_string()或String::from(s)5.一句话总结String是拥有所有权的堆分配字符串可增长、可修改str是不可变的字符串切片通常以str借用形式使用用于只读场景。函数参数优先用str需要拥有和修改时用String。

相关新闻

pstack-claude:本地化CLI代码分析工具,终端直连Claude模型

pstack-claude:本地化CLI代码分析工具,终端直连Claude模型

1. 项目概述:pstack-claude 是什么,它解决的是哪类开发者的实际痛点?pstack-claude 这个名字乍看像一个工具组合词,但拆解后立刻能抓住它的核心意图:pstack是 Linux 系统中用于抓取进程调用栈的底层诊断命令&#xff0…

2026/10/11 3:33:22 阅读更多 →
VSCode tasks.json 变量详解:从编译翻车到高效任务配置

VSCode tasks.json 变量详解:从编译翻车到高效任务配置

简介:这份PDF资料聚焦VSCode tasks.json中的预定义替换变量,面向使用VSCode进行任务配置的开发者,尤其是需要编写构建、编译、自动化脚本的中级用户。内容系统梳理了${workspaceFolder}、${file}、${fileBasename}、${fileDirname}、${relati…

2026/10/9 23:49:28 阅读更多 →
一文搞懂AGI Agent(通用型AI智能体)- Manus:从GAIA评测到多智能体架构的落地拆解

一文搞懂AGI Agent(通用型AI智能体)- Manus:从GAIA评测到多智能体架构的落地拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 23:48:27 阅读更多 →

最新新闻

噪声整形SAR ADC设计入门:从原理到实践

噪声整形SAR ADC设计入门:从原理到实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:32:42 阅读更多 →
Python工业级数据流水线:清洗→建模→可视化一键交付

Python工业级数据流水线:清洗→建模→可视化一键交付

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:32:41 阅读更多 →
晶圆代工三国杀:台积电、三星、中芯国际,2025年谁在领跑?(附最新营收数据)

晶圆代工三国杀:台积电、三星、中芯国际,2025年谁在领跑?(附最新营收数据)

目录晶圆代工三国杀:台积电、三星、中芯国际,2025年谁在领跑?(附最新营收数据)一、先搞懂:为什么芯片公司不自己造芯片?二、2025年全球格局:AI把整个行业推上历史新高三、台积电&…

2026/10/11 3:32:41 阅读更多 →
PJ85718DM与STM32F215ZG工业温控硬件协同设计

PJ85718DM与STM32F215ZG工业温控硬件协同设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:32:41 阅读更多 →
Java中final写了也不安全?从反射绕过到不可变设计实践

Java中final写了也不安全?从反射绕过到不可变设计实践

先问一个反直觉的问题:如果一个类的所有字段都加了final,构造函数里也老老实实地全部赋值了,那这段代码是不是就安全了?我以前也是这么想的,直到有一次线上故障让我排查了一整晚,最后发现数据还是被人改了。…

2026/10/11 3:32:41 阅读更多 →
AI生成测试用例的“全绿”陷阱与测试策略重构

AI生成测试用例的“全绿”陷阱与测试策略重构

上线前一晚,我看着测试报告里那一排排绿色勾勾,心里说不出的踏实。这套新系统的核心模块,80%的测试用例都是我用AI生成的,覆盖率达到90%以上,比之前手写的时候还高出不少。我当时还跟同事开玩笑说,这波是&q…

2026/10/11 3:31:41 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →