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

Программирование на Go. Разработка приложений XXI века

Покупка
Артикул: 606962.03.99
Доступ онлайн
799 ₽
В корзину
На сегодняшний день Go — самый впечатляющий из новых языков программирования. Изначально он создавался для того, чтобы помочь задействовать всю мощь современных многоядерных процессоров. В этом руководстве Марк Саммерфильд, один из основоположников программирования на языке Go, показывает, как писать программы, в полной мере использующие его революционные возможности и идиомы. Данная книга представляет собой одновременно и учебник, и справочник, сводя воедино все знания, необходимые для того, чтобы продолжать освоение Go, думать на Go и писать на нем высокопроизводительные программы. Автор приводит множество сравнений идиом программирования, демонстрируя преимущества Go перед более старыми языками и уделяя особое внимание ключевым инновациям. Попутно, начиная с самых основ, Марк Саммерфильд разъясняет все аспекты параллельного программирования на языке Go с применением каналов и без использования блокировок, а также показывает гибкость и необычность подхода к объектно-ориентированному программированию с применением механизма динамической типизации. Издание предназначено для программистов разной квалификации, желающих освоить и применять в своей практике язык Go.
Саммерфильд, М. Программирование на Go. Разработка приложений XXI века : практическое руководство / М. Саммерфильд ; пер. с англ. А. Н. Киселёва. — 2-е изд. - Москва : ДМК Пресс, 2023. - 581 с. - ISBN 978-5-89818-611-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/2108489 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Программирование на Go

Разработка приложений XXI века

Марк Саммерфильд

Programming in Go:

Creating Applications 
for the 21st Century

Mark Summerfield

Москва, 2023

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

Разработка приложений XXI века

Марк Саммерфильд

2-е издание, электронное

УДК 004.438Go
ББК 32.973.26-018.1

С17

С17
Саммерфильд, Марк.
Программирование на Go. Разработка приложений XXI века / М. Саммерфильд ; пер. с англ. А. Н. Киселёва. — 2-е изд., эл. — 1 файл pdf : 581 с. — 
Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо 
Adobe Digital Editions 4.5 ; экран 10». — Текст : электронный.
ISBN 978-5-89818-611-1

На сегодняшний день Go — самый впечатляющий из новых языков программирования. Изначально он создавался для того, чтобы помочь задействовать всю мощь 
современных многоядерных процессоров. В этом руководстве Марк Саммерфильд, 
один из основоположников программирования на языке Go, показывает, как писать 
программы, в полной мере использующие его революционные возможности и идиомы.
Данная книга представляет собой одновременно и учебник, и справочник, сводя 
воедино все знания, необходимые для того, чтобы продолжать освоение Go, думать 
на Go и писать на нем высокопроизводительные программы. Автор приводит множество сравнений идиом программирования, демонстрируя преимущества Go перед 
более старыми языками и уделяя особое внимание ключевым инновациям. Попутно, 
начиная с самых основ, Марк Саммерфильд разъясняет все аспекты параллельного 
программирования на языке Go с применением каналов и без использования блокировок, а также показывает гибкость и необычность подхода к объектно-ориентированному программированию с применением механизма динамической типизации.
Издание предназначено для программистов разной квалификации, желающих 
освоить и применять в своей практике язык Go.

УДК 004.438Go 
ББК 32.973.26-018.1

Электронное издание на основе печатного издания: Программирование на Go. Разработка 
приложений XXI века / М. Саммерфильд ; пер. с англ. А. Н. Киселёва. — Москва : ДМК Пресс, 
2016. — 580 с. — ISBN 978-5-97060-338-3. — Текст : непосредственный.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было 
форме и какими бы то ни было средствами без  письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических 
ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность 
приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами 
защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-611-1
© Copyright Qtrac Ltd. 
© Оформление, ДМК Пресс, 2016

Содержание

Введение ........................................................ 11

Зачем изучать язык Go? ...................................................... 12

Структура книги .................................................................. 16

Благодарности ................................................................... 17

1. Обзор в пяти примерах ................................... 19

1.1. Начало ......................................................................... 19

1.2. Правка, компиляция и запуск ....................................... 22

1.3. Hello кто? ...................................................................... 28

1.4. Большие цифры – двумерные срезы ............................ 32

1.5. Стек – пользовательские типы данных с методами ....... 38

1.6. Американизация – файлы, отображения и замыкания ......49

1.7. Из полярных координат в декартовы – 
параллельное программирование ...................................... 65

1.8. Упражнение .................................................................. 74

2. Логические значения и числа .......................... 76

2.1. Начальные сведения .................................................... 76
2.1.1. Константы и переменные ...................................... 78

2.2. Логические значения и выражения ............................... 83

2.3. Числовые типы ............................................................. 84
2.3.1. Целочисленные типы ............................................ 87
2.3.2. Вещественные типы.............................................. 93

Содержание

2.4. Пример: statistics ........................................................ 103
2.4.1. Реализация простых статистических функций ...... 104
2.4.2. Реализация простого HTTP-сервера ................... 106

2.5. Упражнения ................................................................ 111

3. Строки ....................................................... 113

3.1. Литералы, операторы и экранированные 
последовательности ......................................................... 115

3.2. Сравнение строк ........................................................ 117

3.3. Символы и строки ...................................................... 121

3.4. Индексирование и получение срезов строк ................ 124

3.5. Форматирование строк с помощью пакета fmt ........... 128
3.5.1. Форматирование логических значений ............... 134
3.5.2. Форматирование целочисленных значений ........ 134
3.5.3. Форматирование символов ................................ 136
3.5.4. Форматирование вещественных значений .......... 137
3.5.5. Форматирование строк и срезов ........................ 139
3.5.6. Форматирование для отладки ............................. 141

3.6. Другие пакеты для работы со строками ...................... 145
3.6.1. Пакет strings ....................................................... 145
3.6.2. Пакет strconv ....................................................... 153
3.6.3. Пакет utf8 ............................................................ 158
3.6.4. Пакет unicode ...................................................... 160
3.6.5. Пакет regexp ....................................................... 161

3.7. Пример: m3u2pls ........................................................ 173

3.8. Упражнения ................................................................ 180

4. Типы коллекций .......................................... 183

4.1. Значения, указатели и ссылочные типы ...................... 184

4.2. Массивы и срезы........................................................ 195
4.2.1. Индексирование срезов и извлечение 
срезов из срезов .......................................................... 201

4.2.2. Итерации по срезам ........................................... 202
4.2.3. Изменение срезов .............................................. 204
4.2.4. Сортировка и поиск по срезам ............................ 209

4.3. Отображения ............................................................. 214
4.3.1. Создание и заполнение отображений ................. 216
4.3.2. Поиск в отображениях ........................................ 219
4.3.3. Изменение отображений .................................... 220
4.3.4. Итерации по отображениям 
с упорядоченными ключами ......................................... 221
4.3.5. Инвертирование отображений ............................ 222

4.4. Примеры .................................................................... 223
4.4.1. Пример: угадай разделитель .............................. 223
4.4.2. Пример: частота встречаемости слов ................. 226

4.5. Упражнения ................................................................ 234

5. Процедурное программирование ................... 238

5.1. Введение в инструкции .............................................. 238
5.1.1. Преобразование типа ......................................... 243
5.1.2. Приведение типов .............................................. 245

5.2. Ветвление .................................................................. 247
5.2.1. Инструкция if ...................................................... 247
5.2.2. Инструкция switch ............................................... 249

5.3. Инструкция цикла for .................................................. 259

5.4. Инструкции организации взаимодействий 
и параллельного выполнения ............................................ 263
5.4.1. Инструкция select ............................................... 267

5.5. Инструкция defer и функции panic() и recover() ........... 272
5.5.1. Функции panic() и recover() ................................. 273

5.6. Пользовательские функции ........................................ 281
5.6.1. Аргументы функций ............................................ 283
5.6.2. Функции init() и main() ......................................... 287
5.6.3. Замыкания .......................................................... 289
5.6.4. Рекурсивные функции ......................................... 291

Содержание

Содержание

5.6.5. Выбор функции во время выполнения ................. 295
5.6.6. Обобщенные функции......................................... 298
5.6.7. Функции высшего порядка .................................. 305

5.7. Пример: сортировка с учетом отступов ...................... 312

5.8. Упражнения ................................................................ 319

6. Объектно-ориентированное программирование .. 322

6.1. Ключевые понятия ...................................................... 323

6.2. Пользовательские типы .............................................. 326
6.2.1. Добавление методов .......................................... 328
6.2.2. Типы с проверкой ................................................ 334

6.3. Интерфейсы ............................................................... 336
6.3.1. Встраивание интерфейсов ................................. 343

6.4. Структуры .................................................................. 348
6.4.1. Структуры: агрегирование и встраивание ........... 349

6.5. Примеры .................................................................... 357
6.5.1. Пример: FuzzyBool – пользовательский тип 
с единственным значением .......................................... 357
6.5.2. Пример: фигуры – семейство пользовательских 
типов ............................................................................ 365
6.5.3. Пример: упорядоченное отображение – 
обобщенный тип коллекций ......................................... 381

6.6. Упражнения ................................................................ 392

7. Параллельное программирование ................. 397

7.1. Ключевые понятия ...................................................... 399

7.2. Примеры .................................................................... 406
7.2.1. Пример: фильтр .................................................. 407
7.2.2. Пример: параллельный поиск ............................. 412
7.2.3. Пример: поточно-ориентированное 
отображение ................................................................ 422
7.2.4. Пример: отчет о работе веб-сервера .................. 430
7.2.5. Пример: поиск дубликатов .................................. 441

7.3. Упражнения ................................................................ 451

8. Обработка файлов ....................................... 455

8.1. Файлы с пользовательскими данными ....................... 455
8.1.1. Обработка файлов в формате JSON .................... 460
8.1.2. Обработка файлов в формате XML ...................... 467
8.1.3. Обработка простых текстовых файлов ................ 475
8.1.4. Обработка файлов в двоичном формате Go ........ 484
8.1.5. Обработка файлов в пользовательском 
двоичном формате ....................................................... 488

8.2. Архивные файлы ........................................................ 499
8.2.1. Создание zip-архивов ......................................... 499
8.2.2. Создание тарболлов ........................................... 502
8.2.3. Распаковывание zip-архивов .............................. 504
8.2.4. Распаковывание тарболлов ................................ 506

8.3. Упражнения ................................................................ 509

9. Пакеты ...................................................... 512

9.1. Пользовательские пакеты .......................................... 512
9.1.1. Создание пользовательских пакетов .................. 513
9.1.2. Импортирование пакетов ................................... 523

9.2. Сторонние пакеты ...................................................... 524

9.3. Краткий обзор команд компилятора Go ...................... 525

9.4. Краткий обзор стандартной библиотеки языка Go ...... 526
9.4.1. Пакеты для работы с архивами 
и сжатыми файлами ..................................................... 527
9.4.2. Пакеты для работы с байтами и строками ........... 527
9.4.3. Пакеты для работы с коллекциями ...................... 529
9.4.4. Пакеты для работы с файлами и ресурсами 
операционной системы ................................................ 532
9.4.5. Пакеты для работы с графикой ........................... 534
9.4.6. Математические пакеты ..................................... 534
9.4.7. Различные пакеты ............................................... 535
9.4.8. Пакеты для работы с сетью ................................. 536
9.4.9. Пакет reflect ........................................................ 537

9.5. Упражнения ................................................................ 541

Содержание

Содержание

A. Эпилог ...................................................... 545

B. Опасность патентов 
на программное обеспечение ........................... 548

C. Список литаратуры ..................................... 553

Предметный указатель .................................... 556

Эта книга посвящается 
Жасмин Бланшетт (Jasmin Blanchette) и Трентону Шульцу (Trenton 
Schulz)

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