Ітератор
Трейт Iterator
підтримує ітерацію над значеннями у колекції. Він вимагає наявності методу next
і надає багато методів. Багато стандартних бібліотечних типів реалізують Iterator
, і ви також можете реалізувати його самостійно:
Speaker Notes
This slide should take about 5 minutes.
-
Трейт
Iterator
реалізує багато поширених функціональних операцій програмування над колекціями (наприклад,map
,filter
,reduce
і т.д.). Це цій трейт, де ви можете знайти всю документацію про них. У Rust ці функції мають створювати код, який є настільки ж ефективним, як і еквівалентні імперативні реалізації. -
IntoIterator
— це трейт, яка забезпечує роботу циклів for. Він реалізований такими типами колекцій, якVec<T>
, і посиланнями на них, наприклад&Vec<T>
і&[T]
. Діапазони також реалізують його. Ось чому ви можете перебирати вектор зfor i in some_vec { .. }
, алеsome_vec.next()
не існує.