Программирование на Rust
Book information
Description
Официальный гид по языку программирования Rust от команды разработчиков Rust из Mozilla Foundation. Добро пожаловать в мир Rust! Этот официальный гид поможет вам создавать более быстрое и надежное программное обеспечение. Высокоуровневая эргономика и низкоуровневое управление часто противоречат друг другу, но Rust бросает вызов этому конфликту. Авторы книги входят в команду разработчиков языка, а значит, вы получите всю информацию из первых рук — от установки языка до создания надежных и масштабируемых программ. От создания функций, выбора типов данных и привязки переменных вы перейдете к более сложным концепциям: - Владение и заимствование, жизненный цикл и типажи. - Гарантированная безопасность программ. - Тестирование, обработка ошибок и эффективный рефакторинг. - Обобщения, умные указатели, многопоточность, типажные объекты и сопоставления. - Работа со встроенным менеджером пакетов Cargo для создания, тестирования, документирования кода и управления зависимостями. - Продвинутые средства работы с Unsafe Rust. Вы найдете множество примеров кода, а также три главы, посвященные созданию полноценных проектов для закрепления знаний: игры-угадайки, создание инструмента командной строки и многопоточного сервера. Язык программирования 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»
Similar books
Программирование на Rust
2021 · EPUB
Русский в порядке
2024 · EPUB
Дерзкий репетитор по русскому языку. Для тех, кто хочет говорить и писать правильно
2023 · EPUB
Библия
EPUB
Производство спиртных напитков
1995 · EPUB
Руководство по лабораторной ректификации / Handbuch der Laboratoriumsdestillation (Krell, 1958)
1960 · EPUB
Бутылка. Книга для тех, кто любит выпить
2021 · EPUB
Почва и вино. Путешествие по вкусам и ароматам
2017 · EPUB