Язык программирования Go

Оглавление⌄
Содержание....8 Предисловие....13 Происхождение Go....14 Проект Go....15 Структура книги....17 Дополнительная информация....19 Благодарности....20 Ждем ваших отзывов!....21 Глава 1. Учебник....23 1.1. Hello, World....23 1.2. Аргументы командной строки....26 1.3. Поиск повторяющихся строк....31 1.4. Анимированные GIF-изображения....36 1.5. Выборка URL....39 1.6. Параллельная выборка URL....41 1.7. Веб-сервер....43 1.8. Некоторые мелочи....48 Глава 2. Структура программы....51 2.1. Имена....51 2.2. Объявления....52 2.3. Переменные....54 2.3.1. Краткое объявление переменной....55 2.3.2. Указатели....56 2.3.3. Функция new....59 2.3.4. Время жизни переменных....60 2.4. Присваивания....61 2.4.1. Присваивание кортежу....62 2.4.2. Присваиваемость....63 2.5. Объявления типов....64 2.6. Пакеты и файлы....66 2.6.1. Импорт....68 2.6.2. Инициализация пакетов....70 2.7. Область видимости....72 Глава 3. Фундаментальные типы данных....77 3.1. Целые числа....77 3.2. Числа с плавающей точкой....83 3.3. Комплексные числа....88 3.4. Булевы значения....90 3.5. Строки....92 3.5.1. Строковые литералы....93 3.5.2. Unicode....94 3.5.3. UTF-8....95 3.5.4. Строки и байтовые срезы....99 3.5.5. Преобразования между строками и числами....103 3.6. Константы....104 3.6.1. Генератор констант iota....105 3.6.2. Нетипизированные константы....107 Глава 4. Составные типы....111 4.1. Массивы....111 4.2. Срезы....114 4.2.1. Функция append....119 4.2.2. Работа со срезами «на месте»....122 4.3. Отображения....125 4.4. Структуры....132 4.4.1. Структурные литералы....135 4.4.2. Сравнение структур....136 4.4.3. Встраивание структур и анонимные поля....137 4.5. JSON....140 4.6. Текстовые и HTML-шаблоны....146 Глава 5. Функции....153 5.1. Объявления функций....153 5.2. Рекурсия....155 5.3. Множественные возвращаемые значения....159 5.4. Ошибки....162 5.4.1. Стратегии обработки ошибок....163 5.4.2. Конец файла (EOF)....166 5.5. Значения-функции....167 5.6. Анонимные функции....170 5.6.1. Предупреждение о захвате переменных итераций....176 5.7. Вариативные функции....178 5.8. Отложенные вызовы функций....180 5.9. Аварийная ситуация....185 5.10. Восстановление....188 Глава 6. Методы....193 6.1. Объявления методов....193 6.2. Методы с указателем в роли получателя....196 6.2.1. Значение nil является корректным получателем....198 6.3. Создание типов путем встраивания структур....199 6.4. Значения-методы и выражения-методы....202 6.5. Пример: тип битового вектора....204 6.6. Инкапсуляция....207 Глава 7. Интерфейсы....211 7.1. Интерфейсы как контракты....211 7.2. Типы интерфейсов....214 7.3. Соответствие интерфейсу....215 7.4. Анализ флагов с помощью flag.Value....219 7.5. Значения интерфейсов....222 7.5.1. Осторожно: интерфейс, содержащий нулевой указатель, не является нулевым....226 7.6. Сортировка с помощью sort.Interface....227 7.7. Интерфейс http.Handler....233 7.8. Интерфейс error....238 7.9. Пример: вычислитель выражения....240 7.10. Декларации типов....248 7.11. Распознавание ошибок с помощью деклараций типов....250 7.12. Запрос поведения с помощью деклараций типов....252 7.13. Выбор типа....254 7.14. Пример: XML-декодирование на основе лексем....257 7.15. Несколько советов....260 Глава 8. Go-подпрограммы и каналы....261 8.1. Go-подпрограммы....261 8.2. Пример: параллельный сервер часов....263 8.3. Пример: параллельный эхо-сервер....267 8.4. Каналы....269 8.4.1. Небуферизованные каналы....271 8.4.2. Конвейеры....272 8.4.3. Однонаправленные каналы....275 8.4.4. Буферизованные каналы....277 8.5. Параллельные циклы....280 8.6. Пример: параллельный веб-сканер....285 8.7. Мультиплексирование с помощью select....290 8.8. Пример: параллельный обход каталога....294 8.9. Отмена....298 8.10. Пример: чат-сервер....301 Глава 9. Параллельность и совместно используемые переменные....305 9.1. Состояния гонки....305 9.2. Взаимные исключения: sync.Mutex....311 9.3. Мьютексы чтения/записи: sync.RWMutex....315 9.4. Синхронизация памяти....316 9.5. Отложенная инициализация: sync.Once....318 9.6. Детектор гонки....321 9.7. Пример: параллельный неблокирующий кеш....321 9.8. Go-подпрограммы и потоки....330 9.8.1. Растущие стеки....330 9.8.2. Планирование go-подпрограмм....331 9.8.3. GOMAXPROCS....331 9.8.4. Go-подпрограммы не имеют идентификации....332 Глава 10. Пакеты и инструменты Go....335 10.1. Введение....335 10.2. Пути импорта....336 10.3. Объявление пакета....337 10.4. Объявления импорта....338 10.5. Пустой импорт....339 10.6. Пакеты и именование....341 10.7. Инструментарий Go....343 10.7.1. Организация рабочего пространства....344 10.7.2. Загрузка пакетов....345 10.7.3. Построение пакетов....346 10.7.4. Документирование пакетов....349 10.7.5. Внутренние пакеты....351 10.7.6. Запрашиваемые пакеты....352 Глава 11. Тестирование....355 11.1. Инструмент go test....356 11.2. Тестовые функции....356 11.2.1. Рандомизированное тестирование....361 11.2.2. Тестирование команд....363 11.2.3. Тестирование белого ящика....365 11.2.4. Внешние тестовые пакеты....369 11.2.5. Написание эффективных тестов....371 11.2.6. Избегайте хрупких тестов....373 11.3. Охват....374 11.4. Функции производительности....377 11.5. Профилирование....380 11.6. Функции-примеры....383 Глава 12. Рефлексия....385 12.1. Почему рефлексия?....385 12.2. reflect.Туре и reflect.Value....386 12.3. Рекурсивный вывод значения....389 12.4. Пример: кодирование S-выражений....395 12.5. Установка переменных с помощью reflect.Value....398 12.6. Пример: декодирование S-выражений....401 12.7. Доступ к дескрипторам полей структур....405 12.8. Вывод методов типа....409 12.9. Предостережение....410 Глава 13. Низкоуровневое программирование....411 13.1. unsafe.Sizeof, Alignof и Offsetof....412 13.2. unsafe.Pointer....414 13.3. Пример: глубокое равенство....417 13.4. Вызов кода С с помощью cgo....420 13.5. Еще одно предостережение....425 Предметный указатель....427
Описание
В этом материале разберём тему: языке.
Ответы на все ваши вопросы вы получите в этой книге. Вы краем уха слышали о новом языке программирования Go, но не знаете, что он представляет собой на самом деле? Она поможет вам познакомиться с языком Go поближе, узнать о его предназначении и преимуществах, и о том, как писать программы на этом языке (причем это будут программы не начинающего, но профессионального программиста - эффективные и идеоматичные).
Книга написана двумя профессионалами - как в области программирования, так и в области написания книг на программистские темы. Так что если вы хотите быть в курсе последних достижений в программировании - не сомневайтесь, взяв эту книгу, вы свернули на верный путь к профессиональному овладению языком Go.
Если материал оказался полезен — сохраните страницу.
Поделиться
Частые вопросы
Можно ли скачать «Язык программирования Go» бесплатно?
Да, «Язык программирования Go» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 7,8 МБ.
Кто автор и когда вышла книга?
автор — Донован Алан А. А. , Керниган Брайан, издательство Вильямс, год выпуска 2016, 436 страниц.
О чём книга «Язык программирования Go»?
Вы краем уха слышали о новом языке программирования Go, но не знаете, что он представляет собой на самом деле?