Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

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

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

А именно, мы рассмотрим:

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

Некоторые другие возможности Rust, тоже появившиеся под влиянием функционального стиля, — например, сопоставление с образцом и перечисления — мы уже разобрали. Умение пользоваться замыканиями и итераторами — важная часть написания быстрого идиоматичного кода на Rust, поэтому им посвящена целая глава.