Путь Ruby
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Перевод:
Слинкин Алексей Александрович
Год издания: 2023
Кол-во страниц: 666
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-89818-334-9
Артикул: 816356.01.99
Уже больше десяти лет программисты на Ruby обращаются к данной книге как к надежному источнику сведений о том, как эффективно писать на этом языке. А теперь Хэл Фултон и Андрэ Арко изрядно обновили этот классический труд, включив описание новых средств языка и инструментов. Новое издание охватывает версию Ruby 2.1 и содержит более 400 примеров, отвечающих на вопрос «Как это делается в Ruby?». Все примеры сопровождаются подробным описанием задачи и технических ограничений. Затем дается пошаговое объяснение одного хорошего решения с детальными комментариями, позволяющими лучше усвоить материал. Третье издание удобно организовано по темам, так что стало еще проще найти ответ на свой вопрос и писать более качественный код в согласии с духом и философией Ruby.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Хэл Фултон совместно с Андрэ Арко Путь Ruby
The Ruby Way, ThiRd ediTion hal FulTon WiTh andRe' aRko Addison Wesley Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Cape Town • Sydney • Tokyo • Singapore • Mexico City
Москва, 2023 Путь Ruby Хэл Фултон совместно с Андрэ Арко 4-е издание, электронное
УДК 004.438Ruby ББК 32.973.22 Ф94 Ф94 Фултон, Хэл. Путь Ruby / Х. Фултон, А. Арко ; пер. с англ. А. A. Слинкина. — 4-е изд., эл. — 1 файл pdf : 666 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-334-9 Уже больше десяти лет программисты на Ruby обращаются к данной книге как к надежному источнику сведений о том, как эффективно писать на этом языке. А теперь Хэл Фултон и Андрэ Арко изрядно обновили этот классический труд, включив описание новых средств языка и инструментов. Новое издание охватывает версию Ruby 2.1 и содержит более 400 примеров, отвечающих на вопрос «Как это делается в Ruby?». Все примеры сопровождаются подробным описанием задачи и технических ограничений. Затем дается пошаговое объяснение одного хорошего решения с детальными комментариями, позволяющими лучше усвоить материал. Третье издание удобно организовано по темам, так что стало еще проще найти ответ на свой вопрос и писать более качественный код в согласии с духом и философией Ruby. УДК 004.438Ruby ББК 32.973.22 Электронное издание на основе печатного издания: Путь Ruby / Х. Фултон, А. Арко ; пер. с англ. А. A. Слинкина. — 3-е изд. — Москва : ДМК Пресс, 2016. — 664 с. — ISBN 978-5-97060-320-8. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-334-9 © Pearson Education, Inc. © Оформление, перевод, ДМК Пресс, 2016
Моим родителям, без которых меня не было бы. — Хэл
Содержание Предисловие ......................................................... 22 Благодарности ....................................................... 26 Об авторах ............................................................ 29 Введение .............................................................. 30 Глава 1. Обзор Ruby ................................................ 39 1.1. Введение в объектно-ориентированное программирование .....................................................................40 1.1.1. Что такое объект ............................................................40 1.1.2. Наследование................................................................41 1.1.3. Полиморфизм ...............................................................43 1.1.4. Еще немного терминов ..................................................44 1.2. Базовый синтаксис и семантика Ruby ...................................45 1.2.1. Ключевые слова и идентификаторы ...............................46 1.2.2. Комментарии и встроенная документация .....................47 1.2.3. Константы, переменные и типы .....................................47 1.2.4. Операторы и приоритеты ...............................................49 1.2.5. Пример программы .......................................................50 1.2.6. Циклы и ветвление.........................................................53 1.2.7. Исключения ...................................................................57 1.3. ООП в Ruby ...........................................................................59 1.3.1. Объекты ........................................................................60 1.3.2. Встроенные классы .......................................................60 1.3.3. Модули и классы-примеси .............................................61 1.3.4. Создание классов ..........................................................62 1.3.5. Методы и атрибуты ........................................................66 1.4. Динамические аспекты Ruby .................................................68 1.4.1. Кодирование во время выполнения ...............................69 1.4.2. Отражение .....................................................................70 1.4.3. Отсутствующие методы .................................................72
1.4.4. Сборка мусора...............................................................72 1.5. Потренируйте свою интуицию: что следует запомнить..........73 1.5.1. Синтаксис ......................................................................73 1.5.2. Отличия от других языков ..............................................75 1.5.3. Предложение case в Ruby ..............................................77 1.5.4. Рубизмы и идиомы ........................................................80 1.5.5. Ориентация на выражения и прочие вопросы ................85 1.6. Жаргон Ruby .........................................................................87 1.7. Заключение ..........................................................................90 Глава 2. Строки ...................................................... 91 2.1. Представление обычных строк .............................................91 2.2. Альтернативная нотация для представления строк ...............92 2.3. Встроенные документы ........................................................93 2.4. Получение длины строки ......................................................94 2.5. Построчная обработка ..........................................................94 2.6. Побайтовая обработка ..........................................................95 2.7. Специализированное сравнение строк .................................96 2.8. Разбиение строки на лексемы ..............................................97 2.9. Форматирование строк ........................................................98 2.10. Строки в качестве объектов ввода-вывода ..........................99 2.11. Управление регистром .......................................................99 2.12. Вычленение и замена подстрок ........................................100 2.13. Подстановка в строках ......................................................102 2.14. Поиск в строке ..................................................................103 2.15. Преобразование символов в коды ASCII и обратно ...........104 2.16. Явные и неявные преобразования ....................................104 2.17. Дописывание в конец строки ............................................106 2.18. Удаление хвостовых символов новой строки и прочих ......106 2.19. Убирание лишних пропусков .............................................107 2.20. Повтор строк ....................................................................108 2.21. Включение выражений в строку ........................................108 2.22. Отложенная интерполяция ................................................109 2.23. Разбор данных, разделенных запятыми ............................109 2.24. Преобразование строки в число (десятичное или иное) ....110 2.25. Кодирование и декодирование строк в кодировке rot13 ....111 2.26. Шифрование строк ...........................................................112 2.27. Сжатие строк ....................................................................113 2.28. Подсчет числа символов в строке .....................................113 2.29. Обращение строки ............................................................114 Содержание
2.30. Удаление дубликатов ........................................................114 2.31. Удаление заданных символов ...........................................114 2.32. Печать специальных символов ..........................................115 2.33. Генерирование последовательности строк .......................115 2.34. Вычисление 32-разрядного CRC .......................................115 2.35. Вычисление SHA-256-свертки строки ...............................116 2.36. Вычисление расстояния Левенштейна между двумя строками ...................................................................................117 2.37. base64-кодирование и декодирование строк ....................118 2.38. Замена символов табуляции пробелами и сворачивание пробелов в табуляторы ....................................119 2.39. Перенос строк по словам ..................................................120 2.40. Заключение ......................................................................121 Глава 3. Регулярные выражения ...............................122 3.1. Синтаксис регулярных выражений ......................................122 3.2. Компиляция регулярных выражений ...................................124 3.3. Экранирование специальных символов ..............................125 3.4. Якоря ..................................................................................125 3.5. Кванторы ............................................................................126 3.6. Позитивное и негативное заглядывание вперед .................128 3.7. Позитивное и негативное оглядывание назад .....................129 3.8. Обратные ссылки ................................................................130 3.9. Именованные соответствия ................................................133 3.10. Классы символов ..............................................................134 3.11. Обобщенные регулярные выражения ................................135 3.12. Сопоставление точки символу конца строки .....................136 3.13. Внутренние модификаторы ..............................................137 3.14. Внутренние подвыражения ...............................................137 3.14.1. Рекурсия в регулярных выражениях ...........................138 3.15. Примеры регулярных выражений ......................................139 3.15.1. Сопоставление с IP-адресом .....................................139 3.15.2. Сопоставление с парой «ключ-значение» ...................140 3.15.3. Сопоставление с числами, записанными римскими цифрами ..............................................................140 3.15.4. Сопоставление с числовыми константами .................141 3.15.5. Сопоставление с датой и временем ...........................141 3.15.6. Обнаружение удвоенных слов в тексте ......................142 3.15.7. Поиск слов, записанных одними заглавными буквами ................................................................................142 Содержание
Содержание 3.15.8. Сопоставление с номером версии .............................143 3.15.9. Еще несколько образцов............................................143 3.16. Заключение ......................................................................144 Глава 4. Интернационализация в Ruby .......................145 4.1. Исторические сведения и терминология ............................146 4.2. Работа с кодировками ........................................................150 4.2.1. Нормализация .............................................................151 4.2.2. Преобразование из одной кодировки в другую ............154 4.2.3. Транслитерация ...........................................................155 4.2.4. Упорядочение строк ....................................................156 4.3. Перевод .............................................................................158 4.3.1. Значения по умолчанию ...............................................160 4.3.2. Пространства имен ......................................................161 4.3.3. Интерполяция ..............................................................161 4.3.4. Формы множественного числа ....................................162 4.4. Локализованное форматирование ......................................164 4.4.1. Дата и время ...............................................................164 4.4.2. Числа ...........................................................................165 4.4.3. Денежные величины ....................................................165 4.5. Заключение ........................................................................165 Глава 5. Численные методы .....................................167 5.1. Представление чисел в языке Ruby .....................................167 5.2. Основные операции над числами .......................................168 5.3. Округление чисел с плавающей точкой ...............................169 5.4. Сравнение чисел с плавающей точкой ................................171 5.5. Форматирование чисел для вывода ....................................172 5.6. Вставка разделителей при форматировании чисел ............173 5.7. Работа с очень большими числами .....................................173 5.8. Использование класса BigDecimal ......................................174 5.9. Работа с рациональными числами ......................................175 5.10. Перемножение матриц .....................................................176 5.11. Комплексные числа ..........................................................180 5.12. Библиотека mathn .............................................................181 5.13. Разложение на простые множители, вычисление НОД и НОК ........................................................................................181 5.14. Простые числа ..................................................................182 5.15. Явные и неявные преобразования чисел ...........................183 5.16. Приведение числовых значений........................................184
5.17. Поразрядные операции над числами ................................185 5.18. Преобразование системы счисления ................................186 5.19. Извлечение кубических корней, корней четвертой степени и т.д. ............................................................................187 5.20. Определение порядка байтов ...........................................188 5.21. Численное вычисление определенного интеграла ............189 5.22. Тригонометрия в градусах, радианах и градах ..................190 5.23. Вычисление логарифмов по произвольному основанию ...191 5.24. Вычисление среднего, медианы и моды набора данных ...191 5.25. Дисперсия и стандартное отклонение ..............................193 5.26. Вычисление коэффициента корреляции ...........................193 5.27. Генерирование случайных чисел .......................................195 5.28. Кэширование функций с помощью метода memoize .........195 5.29. Заключение ......................................................................197 Глава 6. Символы и диапазоны ................................198 6.1. Символы .............................................................................198 6.1.1. Символы как перечисления .........................................200 6.1.2. Символы как метазначения..........................................200 6.1.3. Символы, переменные и методы .................................201 6.1.4. Преобразование строки в символ и обратно ................201 6.2. Диапазоны ..........................................................................203 6.2.1. Открытые и замкнутые диапазоны ...............................203 6.2.2. Нахождение границ диапазона ....................................203 6.2.3. Обход диапазона .........................................................203 6.2.4. Проверка принадлежности диапазону .........................204 6.2.5. Преобразование в массив ...........................................205 6.2.6. Обратные диапазоны ...................................................205 6.2.7. Оператор переключения ..............................................206 6.2.8. Нестандартные диапазоны ..........................................208 6.3. Заключение ........................................................................211 Глава 7. Дата и время .............................................212 7.1. Определение текущего момента времени ..........................213 7.2. Работа с конкретными датами (после точки отсчета) ..........213 7.3. Определение дня недели ....................................................214 7.4. Определение даты Пасхи ....................................................215 7.5. Вычисление n-ого дня недели в месяце ..............................215 7.6. Преобразование из секунд в более крупные единицы .........216 7.7. Вычисление промежутка времени, прошедшего Содержание