Функциональные возможности языка: Итераторы и замыкания
Дизайн Rust черпает вдохновение из многих существующих языков и техник, и одним из значительных влияний является функциональное программирование. Программирование в функциональном стиле часто включает использование функций как значений: передачу их в аргументах, возврат из других функций, присвоение переменным для последующего выполнения и так далее.
В этой главе мы не будем обсуждать, что такое функциональное программирование, а вместо этого рассмотрим некоторые возможности Rust, схожие с возможностями во многих языках, которые часто называют функциональными.
Более конкретно мы рассмотрим:
- Замыкания — конструкцию, похожую на функцию, которую можно сохранить в переменной
- Итераторы — способ обработки серии элементов
- Как использовать замыкания и итераторы для улучшения проекта ввода-вывода из главы 12
- Производительность замыканий и итераторов (предупреждение: они быстрее, чем вы можете думать!)
Мы уже рассмотрели некоторые другие возможности Rust, такие как сопоставление с образцом и перечисления, которые также под влиянием функционального стиля. Поскольку освоение замыканий и итераторов — важная часть написания идиоматичного и быстрого кода на Rust, мы посвятим этой теме всю главу.