Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Путь Ruby

Покупка
Артикул: 816356.01.99
Доступ онлайн
799 ₽
В корзину
Уже больше десяти лет программисты на Ruby обращаются к данной книге как к надежному источнику сведений о том, как эффективно писать на этом языке. А теперь Хэл Фултон и Андрэ Арко изрядно обновили этот классический труд, включив описание новых средств языка и инструментов. Новое издание охватывает версию Ruby 2.1 и содержит более 400 примеров, отвечающих на вопрос «Как это делается в Ruby?». Все примеры сопровождаются подробным описанием задачи и технических ограничений. Затем дается пошаговое объяснение одного хорошего решения с детальными комментариями, позволяющими лучше усвоить материал. Третье издание удобно организовано по темам, так что стало еще проще найти ответ на свой вопрос и писать более качественный код в согласии с духом и философией Ruby.
Фултон, Х. Путь Ruby : практическое руководство / Х. Фултон, А. Арко ; пер. с англ. А. A. Слинкина. — 4-е изд. - Москва : ДМК Пресс, 2023. - 666 с. - ISBN 978-5-89818-334-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/2102621 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Хэл Фултон совместно с Андрэ Арко

Путь 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. Вычисление промежутка времени, прошедшего  

Содержание

Доступ онлайн
799 ₽
В корзину