Программирование на Rust [1 ed.]
5446116569, 9785446116560
Официальный гид по языку программирования Rust от команды разработчиков Rust из Mozilla Foundation. Добро пожаловать в м
222
97
3MB
Russian
Pages 592
Year 2021
Report DMCA / Copyright
DOWNLOAD EPUB FILE
Table of contents :
Язык программирования Rust
Предисловие
Введение
1. С чего начать
1.1. Установка
1.2. Привет, мир!
1.3. Hello, 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. Хранение ключей со связанными значениями в HashMap
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. Разработка функциональности библиотеки с помощью разработки через тестирование
12.5. Работа с переменными среды
12.6. Запись сообщений об ошибках в stderr вместо stdout
13. Функциональные возможности языка: итераторы и замыкания
13.1. Замыкания: анонимные функции, которые захватывают своё окружение
13.2. Обработка последовательности элементов с помощью итераторов
13.3. Улучшение нашего проекта с вводом/выводом
13.4. Сравнение производительности: циклы и итераторы
14. Подробнее о Cargo и Crates.io
14.1. Настройка билдов с помощью профилей выпуска
14.2. Публикация крейта на Crates.io
14.3. Рабочие области Cargo
14.4. Установка бинарных файлов с Crates.io с помощью cargo install
14.5. Расширение возможностей Cargo путём добавления пользовательских команд
15. Умные указатели
15.1. Использование Box для указания на данные в куче
15.2. Работа с умными указателями как с обычными ссылками с помощью трейта Deref
15.3. Выполнение кода при очистке с помощью трейта Drop
15.4. Rc, умный указатель с подсчётом ссылок
15.5. RefCell и внутренняя изменяемость
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. А — Ключевые слова
21.2. B — Операторы и символы
21.3. C — Выводимые трейты
21.4. D — Полезные инструменты разработки
21.5. E — Редакции
21.6. F — Переводы книги
21.7. G — Как создаётся Rust и «Nightly Rust»