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

Rust - for in 遍历数组的几种方式

fn main() {let arr = [1, 2, 3, 4, 5];// 不获取所有权// for item in &arr 与 for item in arr.iter() 等价for item in &arr{println!("{} = {}", item, *item); // item 的类型是&i32}for item in arr.iter() {println!("{} = {}", item, *item); // item 的类型是&i32}let arr2 = ["a".to_string(), "a".to_string(), "a".to_string()];// 获取所有权// for item in arr 和 for item in arr.into_iter等价for item in arr2 {println!("{}", item); // item 的类型是i32}// borrow of moved value: `arr2`// value borrowed here after mov// println!("arr2.len = {}", arr2.len());  // arr2的所有权发生了转移// println!("{:?}", arr2.last()); let arr3 = [1, 2, 3, 4, 5];for item in arr3.into_iter() {println!("{}", item); // item 的类型是i32}println!("arr3.len = {}", arr3.len());  // i32实现了copy类型,所有在迭代时是复制而不是所有权转移println!("{:?}", arr3.last());// 修改数组元素,但不获取所有权// for item in &mut arr3 和 for item in arr3.iter_mut 等价let mut arr3 = [1, 2, 3, 4, 5];for item in &mut arr3 {*item *= 2; // item的类型是&mut i32}println!("{:?}", arr3); // 2, 4, 6, 8, 10for item in arr3.iter_mut() {*item /= 2;}println!("{:?}", arr3); // 1, 2, 3, 4, 5// 获取引用的所有权// for item in (&arr).into_iter 实际是for item in &arr// 明确将引用转换为迭代器// 获取引用的所有权,而不是数组的所有权// 是 for item in &arr的底层展开形式let mut arr4 = [1, 2, 3, 4, 5];for item in (&mut arr4).into_iter() {*item *= 3; // item的类型是&mut i32}println!("{:?}", arr4); let arr5 = [String::from("abc"), String::from("def")];for item in (&arr5).into_iter() {println!("{}", item); // item的类型是&String}println!("{:?}", arr5);
}
http://www.jsqmd.com/news/177357/

相关文章:

  • YOLOFuse软链接修复命令:解决python命令无法执行的问题
  • YOLOFuse日志监控系统搭建:实时查看训练状态
  • YOLOFuse真实来源验证:仅认准GitHub官方仓库链接
  • 昇腾芯片开发避坑指南:3个关键C语言调试技巧你必须掌握
  • C++泛型革命(从C11到C17类型安全演进之路)
  • 为什么你的WASM代码一脱即溃?C语言混淆的3个致命盲区
  • 2025广告行业巅峰对决:领军企业全解析,地铁站广告/明星应援广告/候车亭广告/地铁广告/公交车身广告/电梯电子屏广告广告定制有哪些 - 品牌推荐师
  • 写真摄影小软件:美,从不止于定格
  • YOLOFuse发票申请流程:企业报销必备
  • C++学习笔记 46 单例模式
  • 2026昆明理工大学通信复试考察范围-F00402通信核心课程综合
  • 【最小均方(LMS)算法的分流有源滤波器】分流有源滤波器采用最小均方(LMS)算法的仿真电路可以减轻谐波和无功功率附Simulink仿真
  • 基于MATLAB的改进RRT路径规划:双向RRT与Dijkstra的融合
  • 概率论与数理统计
  • YOLOFuse能否检测小目标?在无人机航拍图中的表现测试
  • 大模型 API官方价 VS 中转价:中小团队如何借力实现降本增效|poloapi.top - poloapi-ai大模型
  • 模型精度下降90%?教你用C语言调试TinyML部署中的隐藏陷阱
  • YOLOFuse余额充值通道开通:支付宝/微信支付支持
  • WASM代码防逆向新突破:C语言混淆的5个关键技术点曝光
  • YOLOFuse配合Typora撰写技术文档:高效记录实验过程
  • 详细介绍:Node.js 性能诊断利器 Clinic.js:原理剖析与实战指南
  • YOLOFuse物联网边缘节点部署案例
  • 2025年仓库货架定制口碑榜TOP10,选购必看,悬臂式货架/流利式货架/可调节货架/304货架/不锈钢货架/悬臂货架仓库货架源头厂家哪家好 - 品牌推荐师
  • OpenMP 5.3负载均衡实战技巧(从入门到精通的稀缺教程)
  • YOLOFuse深度伪造识别辅助功能
  • YOLOFuse OEM定制服务开放:品牌贴牌合作
  • YOLOFuse新手入门第一步:初始化环境并运行推理Demo
  • YOLOFuse医院病房异常行为识别
  • YOLOFuse眼动追踪联动操作
  • 类型安全设计全解析,构建坚如磐石的C++泛型代码体系