Skip to content

Rust记录

iter和into_iter

在 Rust 中,iter()into_iter() 是用于迭代集合的两种不同方法,它们之间有一些重要的区别:

  1. iter()iter() 方法是对集合进行不可变引用的迭代,因此,它允许你在迭代过程中访问集合中的元素,但不会消耗集合自身,因为它只借用了集合的引用。 适用于对集合中的元素进行只读访问,或者在迭代过程中不需要拥有集合所有权的情况。

  2. into_iter()into_iter() 方法是对集合进行所有权的迭代,因此,它会消耗集合自身,将其转移给迭代器。这意味着在迭代过程中,集合本身不能再被访问或使用。 适用于在迭代过程中需要修改集合或者需要将集合转移给迭代器的情况。

因此,如果你需要在迭代过程中保持对集合的访问权,并且不希望将集合转移给迭代器,你应该使用 iter() 方法。而如果你需要在迭代过程中对集合进行修改或者将其转移给迭代器,你应该使用 into_iter() 方法。

尽量使用iter