Rust vec动态数组的索引与借用

news/2025/11/28 11:19:12/文章来源:https://www.cnblogs.com/Tritone95/p/19279034

对于rust中的元素,可以是Copy类型和非Copy类型,从而导致在元素访问时存在不同的底层逻辑。
首先,对于vec[idx],返回的是引用&T
对于Copy类型:

    let mut ve=vec![1,2,3];let it=vec[1];//copyprintln!("{}", it32);

it的类型是int32而非&int32,因为:
vec[1]是a place expression,
let it=vec[1]; is evaluated in a value expression context
If the type of that value implements Copy, then the value will be copied.
所以i32会被copy给it
https://doc.rust-lang.org/reference/expressions.html

    let mut ve=vec![1,2,3];println!("{:#p}",vei32.as_ptr());let it32r = &vei32[0];//it32r 值为直接对vec第二个元素的借用println!("{:p}", it32r);//vei32.as_ptr()与it32r地址相同

it32r 值为直接对vec第二个元素的借用,原因:
The & (shared borrow) and &mut (mutable borrow) operators are unary prefix operators.
When applied to a place expression, this expressions produces a reference (pointer) to the location that the value refers to.
所以vei32[0]返回借用,&vei32[0]直接获取元素地址仍是借用。
https://doc.rust-lang.org/reference/expressions/operator-expr.html#borrow-operators

    let mut ve=vec![1,2,3];let it32r = &vei32[0];vei32.push(4);//报错://cannot borrow `vei32` as mutable because it is also borrowed as immutable //mutable borrow occurs hereprintln!("{:p}", it32r);

原因分析:对于vec,vec[idx]相当于vecbuffer的切片,所以&vei32[0]虽然是对第一个元素的借用,但也是对整个buffer的借用,所以会导致vei32.push(4);报错。
对于非Copy类型:

    let mut vec=vec![String::from("a"),String::from("b"),String::from("c")];let it = vec[1];//cannot move out of index of `Vec<String>`//move occurs because value has type `String`, which does not implement the `Copy` trait

所以对于非Copy类型元素,对索引需要借用:

    let mut vec=vec![String::from("a"),String::from("b"),String::from("c")];let it = &vec[1];vec.push(String::from("value"));//cannot borrow `vec` as mutable because it is also borrowed as immutable//mutable borrow occurs here//同上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/979480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年圆二色光谱仪供货商权威推荐榜单:圆偏振荧光光谱仪/CD光谱仪/旋光色散谱仪器精选

在生物制药、化学分析和材料科学研究领域,圆二色光谱仪作为研究手性分子立体结构的核心工具,其性能精度直接影响科研数据的可靠性。据市场调研显示,全球圆二色光谱仪市场规模预计在2025年将达到2.8亿美元,年复合增…

2025年11月继电器厂家选购指南:高性价比解决方案对比

作为工业自动化领域的核心组件,继电器广泛应用于机械设备、电力系统、交通控制等场景。许多工程师或采购负责人在选择继电器厂家时,常面临产品稳定性、供货周期、技术支持等痛点。当前继电器市场呈现多元化趋势,国产…

题解:P1471 方差

【题目传送门】 一眼分块能做,然后就来开始做。狠狠地做。 构造 我们考虑根号分治,对于每个块我们开:当前的数值和 \(sum1\),当前的数值平方的和 \(sum2\),当前的数值的 \(\operatorname {lazy}\) 数组。 这道题最…

2025英国留学中介哪个最好

2025英国留学中介哪个最好一、2025年英国留学中介如何选择?作为从业十余年的国际教育规划师,我常被学生和家长询问:"2025年申请英国留学,哪家中介最值得信赖?"这个问题背后反映的是对信息真实性和服务专…

2025 年 11 月中国水泵厂家权威推荐榜:消防/多级/自吸/磁力/排污/真空/离心/卧式水泵全品类实力解析与高效选购指南

2025 年 11 月中国水泵厂家权威推荐榜:消防/多级/自吸/磁力/排污/真空/离心/卧式水泵全品类实力解析与高效选购指南 一、中国水泵行业发展趋势与市场格局 随着工业4.0时代的深入发展,中国水泵行业正经历着前所未有的…

2025年质量好的道路景观亮化工程优质企业榜单

2025年质量好的道路景观亮化工程优质企业榜单行业背景与市场趋势 随着城市化进程的加快和夜间经济的蓬勃发展,道路景观亮化工程已成为城市建设的重要组成部分。高质量的亮化工程不仅能提升城市形象,还能优化夜间出行…

2025 年纸盖机成型机权威榜单:纸杯机、制杯机、全伺服纸杯机、纸碗机、纸盖机、纸咖啡杯机、超声波纸杯机、纸盘机智能化制造设备优选

在全球环保包装政策趋严与消费升级的双重驱动下,纸制品机械行业正经历从“规模扩张”到“技术深耕”的转型。作为食品、医疗等领域的关键生产设备,纸盖机厂家的技术实力直接决定下游企业的产能与成本竞争力。2025年,…

AI时代资料收录的理论建构与实践逻辑

在数字技术迅猛发展的当下,人工智能(AI)以其强大的数据处理、模式识别和自主学习能力,正深刻重塑着信息生产、传播与利用的全链条。资料收录作为信息管理的基础环节,承担着数据资源积累、价值筛选与有序化组织的核…

2025 年 11 月热回收设备厂家权威推荐榜:热回收转轮、热管热回收、三维热管、U型热管、分解式乙二醇及烟气余热回收系统高效节能解决方案

2025年11月热回收设备厂家权威推荐榜:热回收转轮、热管热回收、三维热管、U型热管、分解式乙二醇及烟气余热回收系统高效节能解决方案 随着全球能源转型进程加速,工业领域节能降耗需求日益迫切,热回收技术作为提升能…

rust语言Drop特征

在 Rust 语言中,Drop trait(特征)是一个至关重要的概念,它是 Rust RAII (资源获取即初始化) 模型的核心。它定义了当一个值离开作用域时应该执行的清理逻辑。1. Drop trait 的作用 Drop trait 的主要作用是资源管理…

AssemblyLoadContext 的研究笔记

关于 .NET AssemblyLoadContext 的研究笔记public class MyAssemblyLoadContext : AssemblyLoadContext{private readonly AssemblyDependencyResolver _resolver;public MyAssemblyLoadContext(string pluginDllPath)…

2025年11月营销智能体推荐榜单:基于市场数据的权威分析与选择指南

在数字化营销日益成为企业核心战略的今天,越来越多的市场决策者开始寻求更智能、高效的解决方案。营销智能体作为人工智能技术在营销领域的重要应用,能够帮助企业实现从用户洞察到策略执行的全流程优化。对于营销总监…

2025年度中频炉靠谱厂家排名:500公斤中频炉/铝壳中频炉

中频感应熔炼设备是铸造、锻造、冶炼等行业的核心生产工具,其稳定性、能耗表现与售后服务直接决定企业的生产效率与运营成本。2025年,我们结合设备性能(节能性、控温精度、工艺适配性)、客户口碑(故障率反馈、售后…

2025 年 11 月超声设备厂家权威推荐榜:覆盖河北、山西、辽宁、江苏、浙江、山东、广东等区域,精准成像与高效诊断的行业优选

2025 年 11 月超声设备厂家权威推荐榜:覆盖河北、山西、辽宁、江苏、浙江、山东、广东等区域,精准成像与高效诊断的行业优选 超声检测技术作为现代工业质量控制的核心手段,在材料科学、航空航天、能源电力等领域发挥…

Gerrit新增标签

在project.config 中新增 Self-Test标签配置如下:[label "Self-Test"]branch = refs/heads/test_branchfunction = PatchSetLockdefaultValue = 0value = -1 Failsvalue = 0 No scorevalue = +1 Verifiedcop…

2025CMDB 厂商选型攻略:从全栈纳管到一体化运维,企业级配置管理核心指南

文章围绕企业对CMDB全栈纳管、工具联动等核心诉求,对比主流配置管理厂商产品能力与适配场景,结合企业类型、IT架构给出分层选型策略,并解答全栈与多云管理区别等问题,为企业提供CMDB厂商参考。01 引言 在企业数字化…

2025 年 11 月工业气体检测设备厂家权威推荐榜:密闭采样器、气体报警器、气体探测器、在线气体分析仪,精准监测与安全防护首选

2025 年 11 月工业气体检测设备厂家权威推荐榜:密闭采样器、气体报警器、气体探测器、在线气体分析仪,精准监测与安全防护首选 工业气体检测设备作为现代工业生产过程中不可或缺的安全保障装置,在化工、石油、电力、…

2025年质量好的同步反弹缓冲托底轨/缓冲托底轨热门厂家推荐榜单

2025年质量好的同步反弹缓冲托底轨/缓冲托底轨热门厂家推荐榜单行业背景与市场趋势随着家居五金行业的快速发展,缓冲托底轨作为现代家具制造中不可或缺的功能性配件,市场需求持续增长。2025年,全球家具五金市场规模…

2025 年超声波清洗设备厂家最新推荐榜,聚焦技术实力与市场口碑深度解析及优质品牌筛选龙门式 / 全自动 / 多臂式 / 履带式 / 通过式超声波清洗设备推荐

引言 当前工业清洗领域对超声波设备的需求持续攀升,设备性能与品牌可靠性成为企业采购核心考量。国际清洗设备协会(International Cleaning Equipment Association)2024 年度测评报告显示,全球超声波清洗设备市场合…

2025年知名的工程液压油缸/一顺液压油缸最新TOP品牌厂家排行

2025年知名的工程液压油缸/一顺液压油缸TOP品牌厂家排行行业背景与市场趋势液压油缸作为工程机械、工业设备及自动化系统的核心动力部件,其市场需求持续增长。随着中国制造业向高端化、智能化转型,液压油缸行业也迎来…