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