[英]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.