Марк Саммерфильд - Программирование на языке Go. Разработка приложений XXI века

Марк Саммерфильд - Программирование на языке Go. Разработка приложений XXI века
Название:
Марк Саммерфильд - Программирование на языке Go. Разработка приложений XXI века
Размер:
2.2 MB
38
Скачать
Программирование на языке Go. Разработка приложений XXI века
Год: 2013
Автор: Марк Саммерфильд
Переводчик: Александр Киселев
Жанр: Программирование
Издательство: ДМК Пресс
ISBN: 978-5-94074-854-0
Язык: Русский
Формат: PDF
Качество: Изначально компьютерное (eBook)
Интерактивное оглавление: Нет
Количество страниц: 582Описание: На сегодняшний день Go – самый впечатляющий из новых языков программирования. Изначально он создавался для того, чтобы помочь задействовать всю мощь современных многоядерных процессоров. В этом руководстве Марк Саммерфильд, один из основоположников программирования на языке Go, показывает, как писать программы, в полной мере использующие его революционные возможности и идиомы. Данная книга представляет собой одновременно и учебник, и справочник, сводя воедино все знания, необходимые для того, чтобы продолжать освоение Go, думать на Go и писать на нем высокопроизводительные программы. Автор приводит множество сравнений идиом программирования, демонстрируя преимущества Go перед более старыми языками и уделяя особое внимание ключевым инновациям. Попутно, начиная с самых основ, Марк Саммерфильд разъясняет все аспекты параллельного программирования на языке Go с применением каналов и без использования блокировок, а также показывает гибкость и необычность подхода к объектно-ориентированному программированию с применением механизма динамической типизации. Издание предназначено для программистов разной квалификации, желающих освоить и применять в своей практике язык Go.
Скриншоты
Содержание
Введение........................................................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