1、arr.iter()方法;创造一个不可修改值的循环器;
let mut arr = vec![0;13];
for value in arr.iter(){
//value += 1; //value值不可修改
println!("value = {}", value);
}
2、iter_mut()方法;创造一个可修改值的循环器;
let mut arr = vec![0;13];
for value in arr.iter(){
value += 1; //value值可修改
println!("value = {}", value);
}
3、元组模式,arr.iter().enumerate();创造一个不可修改值的循环器,
let mut arr = vec![0;13];
for (index, value) in arr.iter().enumerate(){ //index是下标,value是值
println!("index = {}, value = {}", index, value);
}
for (index, value) in arr.iter_mut().enumerate(){ //可修改值的循环器
*value = 1;
println!("index = {}, value = {}", index, value);
}
4、下标模式
let mut arr = vec![0;13];
for i in 0..arr.len(){
println!("arr value = {}", arr[i]);
}
5、take(num)限制前num条数据
let mut arr = vec![0;13];
for (index,value) in arr.iter().take(5).enumerate(){
println!("index = {}, value = {}", index, value);
}
本文深入探讨了Rust中数组的多种迭代方式,包括不可修改的迭代器(arr.iter())、可修改的迭代器(iter_mut())、使用元组模式的enumerate()、下标模式以及限制迭代次数的take()方法。通过具体代码示例,详细解析每种迭代方法的特点及应用场景。
1万+

被折叠的 条评论
为什么被折叠?



