[英]Why use .iter() in a for loop | Rust
在这两个示例中,在 for 循环中使用.iter() 有什么好处吗?
let chars = ['g', 'd', 'k', 'k', 'n'];
for i in chars {
println!("{}", i);
}
let chars = ['g', 'd', 'k', 'k', 'n'];
for i in chars.iter() {
println!("{}", i);
}
谢谢
这两个例子是等价的。
for i in array
由编译器解释为for i in (&array).into_iter()
。
这意味着您正在迭代&char
类型的元素。
for i in array.iter()
也遍历&char
类型的元素。
2021 版为 arrays 引入了 IntoIterator 。
这意味着现在for i in array
被编译器解释为for i in array.into_iter()
。
您正在迭代char
类型的元素。
但是, for i in array.iter()
仍然迭代&char
类型的元素,这意味着两个示例现在的行为不同。
第一种形式获取数组的所有权,而第二种形式只引用它。
这样做的好处是,如果你明确地使用了iter()
,你只能在循环之后重用chars
数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.