簡體   English   中英

為什么在 for 循環中使用.iter() | Rust

[英]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);
}

謝謝

在版本 <= 2018

這兩個例子是等價的。

for i in array由編譯器解釋為for i in (&array).into_iter()

這意味着您正在迭代&char類型的元素。

for i in array.iter()也遍歷&char類型的元素。

在 2021 版及更高版本中

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM