Мужские правила. Отношения, секс, психология Non-Bullshit Innovation Этой кнопке нужен текст
 
Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• Программирование на языке Rust, Блэнди Дж., Орендорф Дж.


Программирование на языке Rust
Программирование на языке Rust
Блэнди Дж., Орендорф Дж.
Год выпуска: 2018
Изд-во: ДМК
ISBN: 978-5-97060-236-2
Переплёт: мягкий
550 страниц
Цена: 1949.00 грн.
Есть в наличии
в корзину

Instant Purshare На 1 книгу
Отправка: "Новой Почтой" по понедельникам, средам и пятницам*
                Доставка курьером "Новой Почты" по Киеву - на день позже*
Rust — новый язык системного программирования, сочетающий высокую производительность и низкоуровневый контроль, характерные для С и C++, с безопасной работой с памятью и потоками. Современная гибкая система типов Rust препятствует появлению в программах таких ошибок, как разыменование нулевого указателя, двойное освобождение, висячий указатель и прочих, причем все проверки производятся на этапе компиляции, избавляя программу от накладных расходов на этапе выполнения. В многопоточной программе компилятор Rust обнаруживает гонки за данные, благодаря чему писать конкурентный код становится гораздо проще.

В полноцветной книге "Программирование на языке Rust", написанной двумя опытными системными программистами, объясняется, как Rust смог навести мост между производительностью и безопасностью, и как вы можете воспользоваться этим для своих целей.


Содержание книги "Программирование на языке Rust"



Предисловие.................................................................................................................... 14
Глава 1. Почему появился Rust?................................................................................... 18
Типобезопасность.............................................................................................................. 19
Глава 2. Краткий обзор Rust.......................................................................................... 23
Скачивание и установка Rust............................................................................................ 23
Простая функция............................................................................................................... 25
Написание и выполнение автономных тестов................................................................ 27
Обработка аргументов командной строки...................................................................... 28
Простой веб-сервер........................................................................................................... 32
Конкурентность................................................................................................................. 37
Что такое множество Мандельброта............................................................................ 38
Разбор пары аргументов командной строки............................................................... 42
Отображение пикселей на комплексные числа.......................................................... 44
Рисование множества................................................................................................... 46
Запись файла изображения.......................................................................................... 47
Конкурентная программа рисования множества Мандельброта.............................. 48
Выполнение программы рисования множества Мандельброта................................ 52
Невидимая безопасность.............................................................................................. 54
Глава 3. Базовые типы.................................................................................................... 55
Машинные типы................................................................................................................ 58
Целые типы.................................................................................................................... 58
Типы с плавающей точкой............................................................................................ 60
Тип bool.......................................................................................................................... 62
Символы......................................................................................................................... 62
Кортежи.............................................................................................................................. 64
Указательные типы............................................................................................................ 65
Ссылки............................................................................................................................ 66
Боксы.............................................................................................................................. 66
Простые указатели........................................................................................................ 66
Массивы, векторы и срезки.............................................................................................. 67
Массивы......................................................................................................................... 67
Вектор............................................................................................................................. 68
Поэлементное построение векторов........................................................................... 71
Срезки............................................................................................................................ 71
Строковые типы................................................................................................................. 73
Строковые литералы..................................................................................................... 73
Байтовые строки............................................................................................................ 74
Строки в памяти............................................................................................................ 74
Тип String....................................................................................................................... 75
Использование строк.................................................................................................... 76
Другие типы, похожие на строки................................................................................. 77
Более сложные типы.......................................................................................................... 77
Глава 4. Владение............................................................................................................ 78
Владение............................................................................................................................ 79
Передача владения............................................................................................................ 84
Другие операции с передачей...................................................................................... 88
Передача владения и поток управления..................................................................... 89
Передача владения и индексированное содержимое................................................. 90
Копируемые типы: исключения из правила передачи владения.................................. 92
Rc и Arc: совместное владение......................................................................................... 95
Глава 5. Ссылки................................................................................................................ 98
Ссылки как значения....................................................................................................... 101
Сравнение ссылок в Rust и в C++................................................................................ 101
Присваивание ссылкам............................................................................................... 102
Ссылки на ссылки........................................................................................................ 103
Сравнение ссылок....................................................................................................... 103
Ссылки не бывают нулевыми..................................................................................... 104
Заимствование ссылок на произвольные выражения.............................................. 104
Ссылки на срезки и объекты характеристик............................................................. 105
Безопасность ссылок....................................................................................................... 105
Заимствование локальной переменной.................................................................... 105
Получение ссылок в качестве параметров................................................................ 108
Передача ссылок в качестве аргументов................................................................... 110
Возврат ссылок............................................................................................................ 111
Структуры, содержащие ссылки................................................................................. 112
Различные параметрические времена жизни.......................................................... 114
Опускание параметрического времени жизни......................................................... 115
Разделяемость и изменяемость...................................................................................... 117
Оружие против моря объектов....................................................................................... 123
Глава 6. Выражения...................................................................................................... 126
Язык выражений.............................................................................................................. 126
Блоки и точки с запятой.................................................................................................. 127
Объявления...................................................................................................................... 128
if и match.......................................................................................................................... 130
Циклы............................................................................................................................... 132
Выражение return............................................................................................................ 134
Зачем в Rust цикл loop.................................................................................................... 135
Вызовы функций и методов........................................................................................... 136
Поля и элементы.............................................................................................................. 137
Операторы ссылки........................................................................................................... 139
Арифметические, поразрядные, логические операторы и операторы сравнения..... 139
Присваивание.................................................................................................................. 140
Приведение типов........................................................................................................... 140
Замыкания....................................................................................................................... 141
Приоритеты и ассоциативность..................................................................................... 142
Что дальше....................................................................................................................... 144
Глава 7. Обработка ошибок......................................................................................... 145
Паника.............................................................................................................................. 145
Раскрутка стека............................................................................................................ 146
Глава 4. Владение............................................................................................................ 78
Владение............................................................................................................................ 79
Передача владения............................................................................................................ 84
Другие операции с передачей...................................................................................... 88
Передача владения и поток управления..................................................................... 89
Передача владения и индексированное содержимое................................................. 90
Копируемые типы: исключения из правила передачи владения.................................. 92
Rc и Arc: совместное владение......................................................................................... 95
Глава 5. Ссылки................................................................................................................ 98
Ссылки как значения....................................................................................................... 101
Сравнение ссылок в Rust и в C++................................................................................ 101
Присваивание ссылкам............................................................................................... 102
Ссылки на ссылки........................................................................................................ 103
Сравнение ссылок....................................................................................................... 103
Ссылки не бывают нулевыми..................................................................................... 104
Заимствование ссылок на произвольные выражения.............................................. 104
Ссылки на срезки и объекты характеристик............................................................. 105
Безопасность ссылок....................................................................................................... 105
Заимствование локальной переменной.................................................................... 105
Получение ссылок в качестве параметров................................................................ 108
Передача ссылок в качестве аргументов................................................................... 110
Возврат ссылок............................................................................................................ 111
Структуры, содержащие ссылки................................................................................. 112
Различные параметрические времена жизни.......................................................... 114
Опускание параметрического времени жизни......................................................... 115
Разделяемость и изменяемость...................................................................................... 117
Оружие против моря объектов....................................................................................... 123
Глава 6. Выражения...................................................................................................... 126
Язык выражений.............................................................................................................. 126
Блоки и точки с запятой.................................................................................................. 127
Объявления...................................................................................................................... 128
if и match.......................................................................................................................... 130
Циклы............................................................................................................................... 132
Выражение return............................................................................................................ 134
Зачем в Rust цикл loop.................................................................................................... 135
Вызовы функций и методов........................................................................................... 136
Поля и элементы.............................................................................................................. 137
Операторы ссылки........................................................................................................... 139
Арифметические, поразрядные, логические операторы и операторы сравнения..... 139
Присваивание.................................................................................................................. 140
Приведение типов........................................................................................................... 140
Замыкания....................................................................................................................... 141
Приоритеты и ассоциативность..................................................................................... 142
Что дальше....................................................................................................................... 144
Глава 7. Обработка ошибок......................................................................................... 145
Паника.............................................................................................................................. 145
Раскрутка стека............................................................................................................ 146
Универсальные перечисления.................................................................................... 208
Образцы........................................................................................................................... 211
Литералы, переменные и метасимволы в образцах................................................. 213
Кортежные и структурные образцы........................................................................... 215
Ссылочные образцы.................................................................................................... 216
Сопоставление с несколькими возможностями....................................................... 218
Охранные выражения................................................................................................. 219
@-образцы................................................................................................................... 219
Где еще используются образцы.................................................................................. 220
Построение двоичного дерева................................................................................... 221
Общая картина................................................................................................................. 222
Глава 11. Характеристики и универсальные типы................................................. 224
Использование характеристик....................................................................................... 226
Объекты характеристик.............................................................................................. 227
Размещение объекта характеристики в памяти....................................................... 228
Универсальные функции............................................................................................ 229
Что использовать......................................................................................................... 232
Определение и реализация характеристик................................................................... 233
Методы по умолчанию................................................................................................ 234
Характеристики и сторонние типы........................................................................... 235
Употребление Self в характеристиках........................................................................ 237
Подхарактеристики..................................................................................................... 238
Статические методы................................................................................................... 239
Полностью квалифицированные вызовы методов....................................................... 240
Характеристики, определяющие связи между типами................................................ 241
Ассоциированные типы, или Как работают итераторы........................................... 242
Универсальные характеристики, или Как работает перегрузка операторов.......... 245
Парные характеристики, или Как работает rand::random()..................................... 245
Обратное конструирование ограничений..................................................................... 247
Заключение...................................................................................................................... 250
Глава 12. Перегрузка операторов.............................................................................. 251
Арифметические и поразрядные операторы................................................................ 252
Унарные операторы.................................................................................................... 254
Бинарные операторы.................................................................................................. 255
Составные операторы присваивания........................................................................ 255
Сравнение на равенство.................................................................................................. 257
Сравнение на больше-меньше....................................................................................... 260
Index и IndexMut.............................................................................................................. 261
Прочие операторы........................................................................................................... 264
Глава 13. Вспомогательные характеристики........................................................... 265
Характеристика Drop....................................................................................................... 266
Характеристика Sized...................................................................................................... 268
Характеристика Clone..................................................................................................... 271
Характеристика Copy....................................................................................................... 272
Характеристики Deref и DerefMut.................................................................................. 273
Характеристика Default................................................................................................... 276
Характеристики AsRef и AsMut....................................................................................... 277
Характеристики Borrow и BorrowMut............................................................................. 279
Характеристики From и Into........................................................................................... 280
Характеристика ToOwned............................................................................................... 282
Borrow и ToOwned за работой: скромное копирование при записи............................ 283
Глава 14. Замыкания..................................................................................................... 285
Захват переменных......................................................................................................... 286
Замыкания с заимствованием.................................................................................... 287
Замыкания с кражей................................................................................................... 287
Типы функций и замыканий.......................................................................................... 289
Производительность замыканий................................................................................... 291
Замыкания и безопасность............................................................................................. 292
Замыкания, которые убивают.................................................................................... 293
FnOnce.......................................................................................................................... 293
FnMut............................................................................................................................ 295
Обратные вызовы............................................................................................................ 297
Эффективное использование замыканий..................................................................... 299
Глава 15. Итераторы..................................................................................................... 302
Характеристики Iterator и IntoIterator........................................................................... 303
Создание итераторов...................................................................................................... 305
Методы iter и iter_mut................................................................................................. 305
Реализации характеристики IntoIterator................................................................... 305
Метод drain.................................................................................................................. 307
Другие источники итераторов................................................................................... 308
Адаптеры итераторов...................................................................................................... 309
map и filter.................................................................................................................... 309
filter_map и flat_map.................................................................................................... 311
scan............................................................................................................................... 313
take и take_while........................................................................................................... 314
skip и skip_while........................................................................................................... 315
peekable........................................................................................................................ 316
fuse................................................................................................................................ 317
Обратимые итераторы и rev....................................................................................... 317
inspect........................................................................................................................... 318
chain............................................................................................................................. 319
enumerate..................................................................................................................... 319
zip................................................................................................................................. 320
by_ref............................................................................................................................. 321
cloned............................................................................................................................ 322
cycle.............................................................................................................................. 322
Потребление итераторов................................................................................................ 323
Простое аккумулирование: count, sum, product........................................................ 323
max, min....................................................................................................................... 324
max_by, min_by............................................................................................................. 324
max_by_key, min_by_key................................................................................................ 324
Сравнение последовательностей............................................................................... 325
any и all......................................................................................................................... 326
position, rposition и ExactSizeIterator......................................................................... 326
fold................................................................................................................................ 327
nth................................................................................................................................. 327
last................................................................................................................................ 328
find................................................................................................................................ 328
Построение коллекций: collect и FromIterator.......................................................... 328
Характеристика Extend............................................................................................... 330
partition........................................................................................................................ 331
Реализация собственных итераторов............................................................................ 332
Глава 16. Коллекции..................................................................................................... 336
Обзор................................................................................................................................ 337
Тип Vec........................................................................................................................ 338
Доступ к элементам.................................................................................................... 338
Итерирование.............................................................................................................. 340
Увеличение и уменьшение вектора........................................................................... 340
Соединение.................................................................................................................. 343
Расщепление................................................................................................................ 343
Перестановка элементов............................................................................................ 345
Сортировка и поиск..................................................................................................... 345
Сравнение срезок........................................................................................................ 347
Случайные элементы.................................................................................................. 347
В Rust отсутствуют ошибки недействительности..................................................... 347
Тип VecDeque............................................................................................................. 348
Тип LinkedList............................................................................................................ 350
Тип BinaryHeap.......................................................................................................... 350
Типы HashMap и BTreeMap......................................................................... 351
Записи.......................................................................................................................... 354
Обход отображения..................................................................................................... 356
Типы HashSet и BTreeSet..................................................................................... 356
Обход множества......................................................................................................... 357
Когда равные значения различны............................................................................. 357
Операции над множествами как единым целым..................................................... 358
Хеширование................................................................................................................... 359
Применение пользовательского алгоритма хеширования...................................... 360
За пределами стандартных коллекций.......................................................................... 361
Глава 17. Строки и текст................................................................................................ 362
Общие сведения о Юникоде........................................................................................... 362
ASCII, Latin-1 и Юникод.............................................................................................. 362
UTF-8................................................................................................................................ 363
Направление текста..................................................................................................... 365
Символы (char)................................................................................................................. 365
Классификация символов........................................................................................... 365
Работа с цифрами........................................................................................................ 366
Преобразование регистра символов.......................................................................... 366
Преобразование в целое число и обратно................................................................. 367
Типы String и str............................................................................................................... 367
Создание значений типа String.................................................................................. 368
Простая инспекция..................................................................................................... 369
Дописывание и вставка текста................................................................................... 369
Удаление текста........................................................................................................... 371
Соглашения о поиске и итерировании...................................................................... 371
Образцы для поиска текста........................................................................................ 372
Поиск и замена............................................................................................................ 372
Усечение....................................................................................................................... 375
Преобразование регистра........................................................................................... 376
Создание значений других типов из строк............................................................... 376
Преобразование других типов в строки.................................................................... 376
Заимствование в виде других текстообразных типов.............................................. 377
Доступ к байтам текста в кодировке UTF-8............................................................... 378
Порождение текста из данных в кодировке UTF-8................................................... 378
Откладывание выделения памяти............................................................................. 379
Строки как универсальные коллекции...................................................................... 381
Форматирование значений............................................................................................ 381
Форматирование текстовых значений...................................................................... 383
Форматирование чисел............................................................................................... 384
Форматирование прочих типов................................................................................. 385
Форматирование значений для отладки................................................................... 386
Форматирование указателей для отладки................................................................. 387
Ссылка на аргументы по индексу или по имени...................................................... 387
Динамическая ширина и точность............................................................................. 388
Форматирование пользовательских типов............................................................... 389
Применение языка форматирования в своем коде.................................................. 391
Регулярные выражения................................................................................................... 392
Основы работы с Regex............................................................................................... 392
Ленивое построение значений типа Regex................................................................ 393
Нормализация................................................................................................................. 394
Формы нормализации................................................................................................ 395
Крейт unicode-normalization....................................................................................... 396
Глава 18. Ввод и вывод................................................................................................ 398
Читатели и писатели....................................................................................................... 399
Читатели....................................................................................................................... 400
Буферизованные читатели......................................................................................... 401
Чтение строк................................................................................................................ 402
Собирание строк.......................................................................................................... 405
Писатели...................................................................................................................... 405
Файлы........................................................................................................................... 406
Поиск............................................................................................................................ 407
Другие типы читателей и писателей......................................................................... 407
Двоичные данные, сжатие и сериализация............................................................... 409
Файлы и каталоги............................................................................................................ 410
Типы OsStr и Path........................................................................................................ 410
Методы типов Path и PathBuf..................................................................................... 412
Функции доступа к файловой системе...................................................................... 413
Чтение каталогов......................................................................................................... 414
Платформенно-зависимые средства......................................................................... 416
Срества сетевого программирования............................................................................ 417
Глава 19. Конкурентность............................................................................................ 420
Вилочный параллелизм.................................................................................................. 421
Функции spawn и join.................................................................................................. 423
Обработка ошибок в потоках..................................................................................... 425
Разделение неизменяемых данных между потоками.............................................. 426
Rayon............................................................................................................................ 428
И снова о множестве Мандельброта.......................................................................... 430
Каналы.............................................................................................................................. 431
Отправка значений..................................................................................................... 433
Получение значений................................................................................................... 436
Выполнение конвейера............................................................................................... 437
Возможности и производительность каналов.......................................................... 438
Потокобезопасность: Send и Sync.............................................................................. 440
Отправка объектов почти любого итератора по каналу........................................... 442
За пределами конвейеров........................................................................................... 443
Разделяемое изменяемое состояние.............................................................................. 444
Что такое мьютекс?..................................................................................................... 444
Мьютексы в Rust.......................................................................................................... 446
mut и Mutex.................................................................................................................. 448
Почему мьютексы – не всегда хорошая идея............................................................ 448
Взаимоблокировка...................................................................................................... 449
Отравленные мьютексы.............................................................................................. 450
Каналы с несколькими производителями и мьютексом.......................................... 450
Блокировки чтения-записи (RwLock)........................................................................ 451
Условные переменные (Condvar)................................................................................ 452
Атомарные типы......................................................................................................... 453
Глобальные переменные............................................................................................. 455
Как выглядит написание конкурентного кода на Rust................................................. 457
Глава 20. Макросы......................................................................................................... 458
Основы макросов............................................................................................................. 459
Основы макрорасширения......................................................................................... 460
Непредвиденные последствия................................................................................... 461
Повторение.................................................................................................................. 463
Встроенные макросы....................................................................................................... 465
Отладка макросов............................................................................................................ 466
Макрос json!..................................................................................................................... 467
Типы фрагментов........................................................................................................ 468
Рекурсия в макросах................................................................................................... 471
Использование характеристик совместно с макросами.......................................... 471
Области видимости и гигиена.................................................................................... 473
Импорт и экспорт макросов....................................................................................... 476
Предотвращение синтаксических ошибок при сопоставлении................................... 477
За пределами macro_rules!.............................................................................................. 478
Глава 21. Небезопасный код....................................................................................... 480
Небезопасность от чего?................................................................................................. 481
Unsafe-блоки.................................................................................................................... 482
Пример: эффективный тип ASCII-строки................................................................. 483
Unsafe-функции............................................................................................................... 485
Unsafe-блок или unsafe-функция?.................................................................................. 487
Неопределенное поведение............................................................................................ 488
Небезопасные характеристики....................................................................................... 490
Простые указатели.......................................................................................................... 492
Безопасное разыменование простых указателей..................................................... 494
Пример: RefWithFlag................................................................................................... 495
Нулевые указатели...................................................................................................... 498
Размеры и выравнивание типов................................................................................ 498
Арифметика указателей............................................................................................. 499
Передача в память и из памяти.................................................................................. 500
Пример: GapBuffer....................................................................................................... 503
Безопасность паники в небезопасном коде.............................................................. 510
Иноязычные функции: вызов функций на C и C++ из Rust.......................................... 511
Поиск общего представления данных....................................................................... 511
Объявление иноязычных функций и переменных................................................... 514
Использование библиотечных функций................................................................... 515
Низкоуровневый интерфейс с libgit2......................................................................... 519
Безопасный интерфейс к libgit2................................................................................. 524
Заключение...................................................................................................................... 535
Предметный указатель................................................................................................ 536
Об авторах...................................................................................................................... 548
Колофон.......................................................................................................................... 549


Хотите оставить отзыв? У Вас возникли вопросы о книге "Программирование на языке Rust, Блэнди Дж., Орендорф Дж." ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

Наші партнери:

Купить лодку РИБ  |  купить мотор Тохатсу  |  купить снаряжение JOBE Джоби  |  купить гидрокостюм  |  стеклопластик B2B  |  купить гребную лодку  |  ремонт катера  |  купить катер РИБ  |  купить лодку из стеклопластика  |  купить спасательный жилет  |  купить мотор Tohatsu  |  купить JOBE Джоби  |  купить лодочный мотор  | 

 * Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 10 до 18 по будним дням: Водафон (050) 809-56-66, Киевстар (067) 408-26-36 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov