尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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。
RELATED

相关推荐

Trash-ICRA19数据集YOLO格式转换与训练全流程指南

Trash-ICRA19数据集YOLO格式转换与训练全流程指南

简介:本资源为面向计算机、电子信息工程等专业学生及算法初学者的YOLO目标检测实战数据集,基于Trash-ICRA19海洋垃圾检测场景构建,可直接用于课程设计、期末大作业与毕业设计。压缩包共2288个文件,包含1144张jpg图像与1144个同名x…

📅 2026/10/9 23:44:07
基因表达谱特征筛选实战:从Gini指数到MIV+BP神经网络的完整链路

基因表达谱特征筛选实战:从Gini指数到MIV+BP神经网络的完整链路

简介:2025年妈妈杯D题完整论文与代码结果docx文档,面向数学建模竞赛参赛者,针对结肠癌基因表达图谱中的肿瘤基因信息提取问题,给出了系统化的建模思路与可复现结果。全文综合运用GB指数、BP神经网络、平均影响值(MIV&a…

📅 2026/10/9 23:44:07
Swing+MySQL会议预约系统:数据库课程设计实战与避坑指南

Swing+MySQL会议预约系统:数据库课程设计实战与避坑指南

简介:面向高校数据库课程设计及Java桌面应用开发学习者,这是一份以JavaMySQLSwing实现的会议预约管理系统完整项目。系统覆盖会议信息管理、预约冲突检测、参会人员维护等典型业务场景,是理解JDBC数据库交互与GUI分层开发的实用范例。压缩包共…

📅 2026/10/9 23:44:07
MORE NEWS

更多资讯

📰

从Day1到Day105:面试经典150题刷题复盘与高效计划

从第1天就开始刷这套题的人很多,能坚持到“day105”的并不多。3月6号这天,我刚好卡在100天刚过的节点上,把面试经典150题的进度条拉到接近尾声。回头看这三个月零几天的过程,最大的感受不是“题变简单了”,而是“会做题…

📰

高并发电商支付中台实战:从架构拆分到稳定性治理

高并发电商场景下的支付中台,不是买一套中间件就能解决的。我做这个项目时,第一次全链路压测就给了我一个下马威:模拟流量只到目标峰值的六成,支付网关的响应时间已经飙到5秒,线程池被打满,随后连订单查询这…

📰

网络基础大汇总:从IP、子网、VLAN到DNS排障的实战主线

说到“网络基础大汇总”,总有人觉得这就是把七层模型、IP地址、路由器这些名词背一遍。但工作久了你会发现,真正值钱的不是背下协议栈,而是遇到“突然连不上”“延迟忽高忽低”“跨网段访问失败”的时候,能快速判断问题出在哪一层…

📰

uni-app x 强力工具库 unix-utils 正式发布

unix-utils 首个版本正式发布!这是一个为 uni-app x 提供便利工具的集合,以 UTS 源码随标准 uni_modules 插件分发(插件市场 npm 双轨),当前包含 toast 模块——对 uni.showToast 的全端兼容封装,覆盖 And…

📰

人脸识别项目落地实战:架构、部署、调优与避坑全解析

简介:一套面向安防、公安及智慧城市领域的人脸识别系统建设方案,完整覆盖项目概况、需求分析、建设目标、动态人像天网与静态人像天网、性能指标及建设原则等模块,层次递进,适合作为方案设计、技术选型或项目投标的参考底稿。资料…

📰

基于 Agones 的多集群游戏服务器统一分配端点(Allocation Endpoint)代理实战指南

游戏开发云原生 【免费下载链接】agones Dedicated Game Server Hosting and Scaling for Multiplayer Games on Kubernetes 项目地址: https://gitcode.com/gh_mirrors/ag/agones 点击查看 免费下载 导读:本指南以 Agones 仓库中 examples/allocation-…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬