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, які подібні до можливостей у багатьох мовах, що часто називають функціональними.

Точніше, ми розглянемо:

  • Замикання, конструкцію, схожу на функцію, яку ви можете зберігати у змінній
  • Ітератори, спосіб обробки серії елементів
  • Як використовувати замикання та ітератори для поліпшення проєкту I/O у главі 12
  • Продуктивність замикань та ітераторів (спойлер: вони швидші, ніж ви могли б подумати!)

Ми вже розглянули деякі інші можливості Rust, такі як зіставлення зі зразком (pattern matching) і переліки, на які також вплинув функціональний стиль. Оскільки опанування замикань та ітераторів є важливою частиною написання швидкого, ідіоматичного коду Rust, ми присвятимо цю главу повністю їм.