rust 迭代
2022/7/11 23:21:17
本文主要是介绍rust 迭代,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
fn main() { let values = vec![1, 2, 3]; for v in values.into_iter() { println!("{}", v) } // 下面的代码将报错,因为 values 的所有权在上面 `for` 循环中已经被转移走 // println!("{:?}",values); let values = vec![1, 2, 3]; let _values_iter = values.iter(); // 不会报错,因为 values_iter 只是借用了 values 中的元素 println!("{:?}", values); let mut values = vec![1, 2, 3]; // 对 values 中的元素进行可变借用 let mut values_iter_mut = values.iter_mut(); // 取出第一个元素,并修改为0 if let Some(v) = values_iter_mut.next() { *v = 0; } // 输出[0, 2, 3] println!("{:?}", values); }
具体解释在代码注释中,就不再赘述,不过有两点需要注意的是:
.iter()
方法实现的迭代器,调用next
方法返回的类型是Some(&T)
.iter_mut()
方法实现的迭代器,调用next
方法返回的类型是Some(&mut T)
,因此在if let Some(v) = values_iter_mut.next()
中,v
的类型是&mut i32
,最终我们可以通过*v = 0
的方式修改其值
这篇关于rust 迭代的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南