Мова Програмування Rust
Передмова
Вступ
1.
Початок
1.1.
Встановлення
1.2.
Hello, World!
1.3.
Привіт, Cargo!
2.
Програмування Гри Відгадайки
3.
Загальні Концепції Програмування
3.1.
Змінні і Мутабельність
3.2.
Типи Даних
3.3.
Функції
3.4.
Коментарі
3.5.
Потік Виконання
4.
Розуміння Володіння
4.1.
Що Таке Володіння?
4.2.
Посилання та Позичання
4.3.
Слайси
5.
Використання Структур для Групування Пов'язаних Даних
5.1.
Визначення та Створення Екземпляра Структури
5.2.
Приклад Програми з Використанням Структур
5.3.
Синтаксис Методів
6.
Енуми та Зіставлення зі Шаблоном
6.1.
Визначення Енума
6.2.
Конструкція Потоку Виконання match
6.3.
Лаконічний Потік Виконання з if let
7.
Керування Щораз Більшими Проєктами із Пакетами, Крейтами та Модулями
7.1.
Пакети та Крейти
7.2.
Визначення Модулів для Контролю Області Видимості та Приватності
7.3.
Шлях для Доступу до Елементів у Дереві Модулів
7.4.
Введення Шляхів до Області Видимості з Ключовим Словом use
7.5.
Розподіл Модулів на Різні Файли
8.
Звичайні Колекції
8.1.
Зберігання Списків Значень з Векторами
8.2.
Зберігання Тексту у Кодуванні UTF-8 в Стрічках
8.3.
Зберігання Ключів з Асоційованими Значеннями у Хеш-Мапах
9.
Обробка Помилок
9.1.
Невідновлювані Помилки з panic!
9.2.
Відновлювані Помилки з Result
9.3.
panic! чи не panic!
10.
Узагальнені Типи, Трейти та Часи Існування
10.1.
Узагальнені Типи Даних
10.2.
Трейти: Визначення Спільної Поведінки
10.3.
Перевірка Коректності Посилань із Часами Існування
11.
Написання Автоматизованих Тестів
11.1.
Як Писати Тести
11.2.
Керування Запуском Тестів
11.3.
Організація Тестів
12.
Проєкт з Вводом/Виводом: Створення Програми з Інтерфейсом Командного Рядка
12.1.
Приймання Аргументів Командного Рядка
12.2.
Читання Файлу
12.3.
Рефакторинг для Покращення Модульності та Обробки Помилок
12.4.
Розробка Функціонала Бібліотеки із Test-Driven Development
12.5.
Робота зі Змінними Середовища
12.6.
Написання Повідомлень про Помилки у Помилковий Вивід замість Стандартного Виводу
13.
Функціональні Можливості Мови: Ітератори та Замикання
13.1.
Замикання: Анонімні Функції, що Захоплюють Своє Середовище
13.2.
Обробка Послідовностей Елементів з Ітераторами
13.3.
Покращення Нашого Проєкту з Вводом/Виводом
13.4.
Порівняння Швидкодії: Цикли Проти Ітераторів
14.
Більше про Cargo та Crates.io
14.1.
Налаштування Збірок з Release Профілями
14.2.
Публікація Крейта на Crates.io
14.3.
Робочі Області Cargo
14.4.
Встановлення Двійкових Файлів з cargo install
14.5.
Розширення Cargo із Користувацькими Командами
15.
Розумні Вказівники
15.1.
Використання Box<T> для Вказування на Дані в Купі
15.2.
Ставлення до Розумних Вказівників як до Звичайних Посилань з Трейтом Deref
15.3.
Виконання Коду при Очищенні з Трейтом Drop
15.4.
Rc<T> - Розумний Вказівник з Лічильником Посилань
15.5.
RefCell<T> та Шаблон Внутрішньої Мутабельності
15.6.
Цикли Посилань Можуть Спричинити Витік Пам'яті
16.
Безстрашна Конкурентність
16.1.
Використання Потоків для Одночасного Виконання Коду
16.2.
Застосування Обміну Повідомлень для Передавання Даних між Потоками
16.3.
Конкурентність зі Спільним Станом
16.4.
Розширювана Конкурентність із Трейтами Sync та Send
17.
Особливості Об'єктоорієнтованого Програмування в Rust
17.1.
Характеристики Об'єктоорієнтованих Мов
17.2.
Використання Трейт-Об'єктів, які Допускають Значення Різних Типів
17.3.
Реалізація Об'єктоорієнтованого Шаблону Проєктування
18.
Шаблони та Зіставлення Шаблонів
18.1.
Усі Місця Можливого Використання Шаблонів
18.2.
Спростовуваність: Чи Може Шаблон Бути Невідповідним
18.3.
Синтаксис Шаблонів
19.
Просунуті Можливості
19.1.
Небезпечний Rust
19.2.
Поглиблено про Трейти
19.3.
Поглиблено про Типи
19.4.
Поглиблено про Функції та Замикання
19.5.
Макроси
20.
Останній Проєкт: Збірка Багатопотокового Вебсервера
20.1.
Збірка Однопотокового Вебсервера
20.2.
Перетворюємо Наш Однопотоковий Сервер на Багатопотоковий
20.3.
Плавне Вимкнення та Очищення
21.
Додатки
21.1.
A - Ключові Слова
21.2.
B - Оператори та Символи
21.3.
C - Похідні Трейти
21.4.
D - Корисні Інструменти Розробки
21.5.
E - Видання
21.6.
F - Переклади Книги
21.7.
G - як Розробляється Rust і "Нічний Rust"
Light (default)
Rust
Coal
Navy
Ayu
Мова програмування Rust
Додатки
Наступні розділи містять довідковий матеріал, що стане в пригоді у вашій подорожі мовою Rust.