在 Rust 中,iter()
和迭代器適配器(iterator adaptor)都是用于操作和處理集合類型(如向量、列表等)中的元素的方法,但它們之間存在一些關鍵區別。
iter()
方法:
iter()
是 Rust 集合類型(如 Vec
、List
等)的一個方法,它返回一個實現了 Iterator
trait 的迭代器。Iterator
trait 是一個泛型 trait,它定義了迭代器的基本操作,如 next()
、count()
等。iter()
方法返回的迭代器是原始集合類型的引用,因此對集合的修改不會影響原始集合。示例:
let vec = vec![1, 2, 3, 4, 5];
let iterator = vec.iter(); // 返回一個迭代器
Iterator
trait 的迭代器作為參數,并返回一個新的迭代器。這些適配器可以用來對迭代器進行各種操作,如過濾、映射、歸約等。迭代器適配器不會修改原始迭代器,而是創建一個新的迭代器來表示處理后的結果。示例:
let vec = vec![1, 2, 3, 4, 5];
let even_numbers = vec.iter().filter(|&x| x % 2 == 0); // 使用 filter 適配器過濾偶數
總結一下,iter()
方法用于從集合類型中創建一個迭代器,而迭代器適配器用于對迭代器進行各種操作。iter()
返回的是原始集合類型的引用,而迭代器適配器返回的是一個新的迭代器。