Функциональные возможности языка: Итераторы и Замыкания

Дизайн языка Rust получил вдохновение из многих существующих языков и техник, и одним из существенных влияний является функциональное программирование. Программирование в функциональном стиле часто включает использование функций в качестве значений, передаваемых в аргументах, возвращаемых из других функций, назначаемых переменным для последующего выполнения и так далее.

В этой главе мы не будем обсуждать вопрос о том, чем является функциональное программирование или не является, вместо этого мы обсудим некоторые функции Rust, которые похожи на функции во многих языках, часто называемых функциональными.

Более подробно мы поговорим про:

  • замыкания, функциональная конструкция, которую вы можете хранить в переменной,
  • итераторы - способ обработки последовательности элементов,
  • как с помощью этих двух языковых конструкций можно улучшить операции ввода/вывода в Главе 12,
  • производительности этих конструкций (они быстрее, чем вы думаете!).

На другие функции Rust, такие как сопоставление с образцом и перечисления, о которых мы говорили в других главах, также влияет функциональный стиль. Освоение замыканий и итераторов является важной частью написания идиоматического, быстрого кода на Rust, поэтому мы посвятим им всю эту главу.