Программирование на Rust

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Официальный гид по языку программирования Rust от команды разработчиков Rust из Mozilla Foundation. Добро пожаловать в мир Rust! Этот официальный гид поможет вам создавать более быстрое и надежное программное обеспечение. Высокоуровневая эргономика и низкоуровневое управление часто противоречат друг другу, но Rust бросает вызов этому конфликту. Авторы книги входят в команду разработчиков языка, а значит, вы получите всю информацию из первых рук — от установки языка до создания надежных и масштабируемых программ. От создания функций, выбора типов данных и привязки переменных вы перейдете к более сложным концепциям: - Владение и заимствование, жизненный цикл и типажи. - Гарантированная безопасность программ. - Тестирование, обработка ошибок и эффективный рефакторинг. - Обобщения, умные указатели, многопоточность, типажные объекты и сопоставления. - Работа со встроенным менеджером пакетов Cargo для создания, тестирования, документирования кода и управления зависимостями. - Продвинутые средства работы с Unsafe Rust. Вы найдете множество примеров кода, а также три главы, посвященные созданию полноценных проектов для закрепления знаний: игры-угадайки, создание инструмента командной строки и многопоточного сервера.

Author(s): Клабник Стив, Николс Кэрол
Series: Для профессионалов
Edition: 1
Publisher: Питер
Year: 2021

Language: Russian
Commentary: NOTE 1: file nav.xhtml has broken syntax; NOTE 2: HTML version https://doc.rust-lang.ru/book
Pages: 592
City: Москва
Tags: Rust; Раст; Язык программирования Rust; Rust 1.67.1+

Язык программирования 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»