Функціональні можливості мови: Ітератори та Замикання
Розробка мови Rust була натхненна багатьма мовами та техніками, і суттєвий вплив на неї мало функціональне програмування. Програмування у функціональному стилі зазвичай вбачає у собі використання функцій як значень, передаючи їх в аргументи, повертаючи як результат інших функцій, присвоюючи до змінних для подальшого застосування і так далі.
У цьому розділі, ми не обговорюватимемо питання того, що є функціональним програмуванням, а що ні. Натомість, ми обговоримо деякі можливості Rust, що схожі на можливості багатьох мов, які часто називають функціональними.
Зокрема, ми розглянемо:
- Замикання, функціональну конструкцію, яку можна зберігати у змінній
- Ітератори, спосіб обробки послідовності елементів
- Як використовувати замикання та ітератори для покращення операцій вводу/виводу для проекту з 12 розділу
- Швидкість замикань та ітераторів (Спойлер: вони швидші ніж ви думаєте!)
Ми вже розглянули деякі можливості Rust, такі як зіставлення зі шаблоном та енуми, які теж були створені з оглядом на ідеї функціонального стилю. Оскільки опановування замикань та ітераторів це важлива частина написання ідіоматичного та швидкого коду на Rust, ми виділимо для них увесь цей розділ.