1. Зарождение, развитие и популяризация языка Go
1. Изучайте язык Го
Введение в Golang и установка среды | Серия учебных пособий по Golang | Go Theme Month](Наггетс.Талант/пост/694249…)
1.1 Происхождение языка Go
1.2 Основные возможности и среда разработки языка Go
1.3 Обзор распространенных ошибок в языке Go
1.4 Рекомендации по книге Голанг
- 1.4.1 Руководство по началу работы Оно больше подходит для новичков, а содержание относительно простое.
- 1.4.2 Библия языка Go, как следует из названия
- 1.4.3 Китайский веб-сайт Go Language Найдите нужный кружок и учитесь быстрее
- 1.4.4 Учебник для новичков Этот веб-сайт очень удобен для быстрого начала изучения языка.
- 1.4.5 Продвинутое программирование на языке Go Контент подходит для продвинутых
- 1.4.6 Язык go изначально был разработан Oushen.Хотя прогресс составляет всего 9,9%/100%, это не мешает его совершенству.На него стоит посмотреть.
- 1.4.7 шаблон проектирования golang шаблон проектирования реализация Golang, реализация golang «шлифовального шаблона проектирования»
- 1.4.8 Go практическая разработка Автор является автором известного проекта Beego с открытым исходным кодом Go, и его лучшие практики стоит прочитать.
- 1.4.9 Go palyground Пишите код Go онлайн без создания локальной среды Go
1.5 Проект с открытым исходным кодом на языке Go
- xgen — базовая библиотека для написания инструментов XSD, определяющих XML-схемы как многоязычный или декларативный код.
- GQLEngine — высокопроизводительный фреймворк сервера GraphQL на языке Go
- Orange — это фреймворк для веб-разработки, основанный на языке Golang.
- Go-admin — фреймворк для быстрого создания визуального фона управления данными на основе Golang.
- Go-snowflake Алгоритм снежинки, реализованный на языке Go, реализует уникальный идентификатор для распределенных систем и может генерировать 20 идентификаторов за 1 с в тесте на одной машине.
- KubeVela — это простая в использовании и хорошо масштабируемая платформа управления приложениями и основной движок.
- TiDB — это база данных, которую вы захотите выбрать, увидев узкое место в производительности mysql.
- EasyMIDI EasyMidi — простая и надежная библиотека для работы со стандартными миди-файлами (SMF).
1.6 Перейти к установке локали
ссылка для скачивания:www.golangtc.com/download
GOPATH
2. Перейти к настройкам рабочей среды
1. Редактор
- Jetbrains GoLand 强烈推荐
- Jetbrains IDEA + go插件
- VS Code
- Atom
- liteide
- Sublime Text
2. Управление зависимостями
- glide
- 安装:<https://glide.sh/>
- 初始化
- 依赖下载
- mod
3. Перейти к выпуску исходного кода
3. Пакеты, функции, переменные, константы, типы данных
1. Пакет, связанный с
Советы по использованию пакета json языка Go
1.1 Пакет
До свидания, ГОПАТ! Введение в управление пакетами в новой версии Golang
Инструмент управления пакетами Go (1)
Пакет текста/шаблона стандартной библиотеки языка Go, объясненный простым языком
Govendor руководство по использованию инструмента управления пакетами Go
1.2 Сторонние пакеты
1.3 Заявления об импорте
1.3.1 Сгруппированные операторы импорта
1.3.2 Множественные операторы импорта
1.4 Имя экспорта
Пакет синтаксиса Go, пакет импорта, имя экспорта
2. Функция, связанная
Перейти язык от новичка к профессионалу: функции
2.1 Работа функции
[Перевод] Парсинг вызовов функций в Go
[Перевод] Функция Go вызывает Redux
Существует ли передача параметра функции по ссылке в Golang?
Краткое введение в функциональное программирование на Golang
Статья, объясняющая функции в Go
2.2 Функции с несколькими возвращаемыми значениями
2.3 Функциональные значения
2.3.1 Закрытие функций
В заметках по изучению Go нужен только пример, чтобы объяснить, что такое замыкания.
GO-Три аспекта понимания замыканий
3. Переменные
3.1 Введение в переменные
Сведения о настройке переменной среды Golang
Как инициализировать переменные в Go
Параллельные переменные общей памяти Golang
Golang с нуля: соглашения об именах, переменные и константы
[Go Learning Road] Переменные Go
Влияние переменной среды CGO_ENABLED на механизм статической компиляции Go
3.2 Инициализация переменных
3.3 Краткие объявления переменных
Краткое объявление переменной в GO
3.4 Нулевое значение
Объявлениям переменных без явных начальных значений присваивается их нулевое значение
Нулевое значение Golang, нулевое значение и пустая структура
- Нулевое значение:
- Числовой тип 0
- логический тип ложный
- Строка "" (пустая строка)
- Связь между нулевыми и нулевыми значениями
- Разница между нулевым значением нуля
4. Константы
4.1 Константы
Golang начинается с нуля (2): соглашения об именах, переменные и константы
Обучение Голангу - постоянная константа и ота
Расширенный 1: сравнение типов, константа, NIL
4.2 Числовые константы
5. Основные типы
5.1 bool
5.2 string
Как перехватить строку в Go? Перехватывать английские и китайские строки
Разница между строкой серии Go, байтами, руной
Объясните использование ReplaceAllString в пакете регулярных выражений Go.
Преобразование целочисленных и строковых строк в Go
Строка, которую вы не знаете в голанге
Введение в стандартную библиотеку Go 1: строки
Реализация интерфейса пакета golang fmt String(), Error(), Format(), GoString()
5.3 int int8 int16 int32 int64uint uint8 uint16 uint32 uint64 uintptr
Преобразование между int, int64 и string в Golang (перевод)
Глубокое понимание интерфейса интерфейса Golang
От Coid Customization, разговаривайте о развязке интерфейса и GRPC
Вопросы для интервью с Golang: Можете ли вы рассказать о разнице между uintptr и unsafe.Pointer?
Принцип реализации MulUintptr в Golang
5,4 байта // псевдоним для uint8
Разница между строкой серии Go, байтами, руной
Преобразование между массивом байтов []byte и строковой строкой в Go
Строки, байты и руны — просто изучаем Go
строки, байты, руны и символы в go
5.5 рунический код юникода
Разница между строкой серии Go, байтами, руной
Преобразование между рунами и строками в Голанге (перевод)
Строки, байты и руны — просто изучаем Go
Основополагающий принцип и анализ взаимного преобразования []byte, string и []rune в Golang
5.6 float32 float64
5.7complex64 complex128
5.8 Преобразование типов
Перейти к базовому преобразованию типов
Резюме четырех преобразований типов в golang
Проблема преобразования типа time.Duration в Golang
5.9 Тип разборки
В-четвертых, оператор управления потоком
Операторы управления потоком: for, if, else, switch, defer
1. Оператор цикла
1.1 for
1.1.1 для цикла
Вчерашний коллега, который добавил элемент в цикл for, все еще там сегодня?
Оптимизация производительности языка Go — для исследования производительности Range
[Голанг] Вы должны знать эти ямы для стрельбы, железный сок
1.1.2 Оператор инициализации
1.1.3 Условные выражения
Об области действия переменных в условных выражениях if-else
1.1.4 Условия цикла
1.1.5 Пост-выписки
2. Оценка утверждения
2.1 IF
2.1.1 Краткое выражение if
2.1.2 если и еще
2.2 switch
Управление языковым потоком Go: switch-case
[перевод] часть 10: оператор переключения golang
порядок оценки переключателя
3. Postcall - отсрочка
3.1 defer
При выполнении функции, содержащей оператор отсрочки, будет выполнена функция после отсрочки -
推迟调用
Выполнение нескольких операторов defer в функции, порядок их выполнения противоположен порядку объявления.
3.1.1 Принцип
Отложенные вызовы функций помещаются в
栈
середина. Когда внешняя функция возвращается, отложенные функции вызываются в порядке LIFO.
Перейти к отложенной функции defer в деталях
иди изучай заметки, чтобы разобраться с функцией задержки отсрочки
Пять, базовая структура данных
1. Указатель
В Go есть указатели. Указатель содержит адрес памяти значения.
Исследование Golang: правильное использование типов указателей Golang
Тщательно изучите указатели Go — изучите язык Go
Яма данных указателя диапазона в Golang
Указатели Golang: использование методов, функций и операций
Тип реализации отражения Go и копия указателя
2. Структура
Структура — это набор полей.
golang | Вводный курс по языку Go — инициализация структуры и наследование
15. Понимание объектно-ориентированного программирования в Go: структуры и наследование
Всеохватывающие структуры — изучите Go
Пользовательская структура Golang для отображения
2.1 Поля структуры
Поля структуры обозначаются через точку
Пользовательская структура Golang для отображения
2.2 Указатель структуры
Доступ к полям структуры можно получить с помощью указателей структуры
2.3 Объявление структуры
Объявление структуры может заново выделять структуру, непосредственно перечисляя значения полей.
3. Массив
Type[n]T представляет собой массив с n значениями типа T.
Как дедуплицировать фрагменты массива в Go
Урок 4 «Учитесь работать быстро» — Неброские массивы
Преобразование слайса в массив C
Преобразование между массивом байтов []byte и строковой строкой в Gonuggets.capable/post/684490…
4. Нарезка
Размер каждого массива фиксирован. Срезы, с другой стороны, обеспечивают гибкие представления элементов массива с динамическими размерами. На практике срезы используются чаще, чем массивы.
Углубленный анализ трех особых состояний «среза» в языке Go
(серьезная версия) Интервьюер: Срез как параметр функции передается по значению или по ссылке?
Как использовать емкость и длину среза в Go
4.1 Определение среза
Срез подобен массиву ссылок, срез не хранит данные напрямую, он просто описывает сегмент базового массива.
4.2 Грамматика среза
Грамматика среза аналогична грамматике массива без длины.
4.3 Поведение слайсов по умолчанию
4.4 Длина и вместимость ломтиков
4,5 ноль кусочков
4.6 Создание слайсов с помощью make
4.7 Нарезка ломтиками
Слайсы могут содержать любой тип, даже другие слайсы.
4.8 Добавление элементов в слайс
4.9 range
Форма диапазона цикла for проходит по срезу или карте.
5. Карта
параметры автоматического сопоставления джина и автоматическая проверка
Серия PHP to Go: сопоставление карт
5.1 Грамматика карт
5.2 Изменить сопоставление
5. Методы и интерфейсы
1. Метод
- указательный приемник
- метод и перенаправление указателя
- выбрать значение или указатель в качестве получателя
2. Интерфейс
2.1 Понимание интерфейса
Глубокое понимание интерфейса интерфейса Golang
Подробное объяснение интерфейса языка Go (1)
Подробный интерфейс языка Go (b)
2.2 Интерфейсы и неявные формы
2.3 Значения интерфейса
2.3.1 нулевое значение интерфейса
Перейти «Интерфейс, содержащий нулевой указатель, не является нулевым интерфейсом»
2.3.2 Пустой интерфейс
31. Расскажите о пустых интерфейсах в Go
2.4 Утверждение типа интерфейса
14. Что такое утверждение типа в языке Go?
Разговор об утверждении типа в golang
2.5 Выбор типа интерфейса
2.6 Stringer
6. Исключение ошибки
1. Ошибка
Рекомендуемое решение для обработки ошибок на языке Go (golang)
[Перевод] Часть 31: Пользовательские ошибки в golang
[Перевод] Обработка ошибок пакета ошибок Go 1.13
Семь, IO читать
1. Reader
2. Изображение
golang картинка капчаперепечатывать
3. Блокировка и неблокировка
Различные жесты блокировки навсегда в Голанге
Golang реализует легкую и быструю неблокирующую сетевую библиотеку TCP на основе режима Reactor.
4. Синхронный против асинхронного
kingtask: облегченная система асинхронных задач, разработанная Go
Поговорите об асинхронности Python, Golang, Nodejs в простом веб-чате
5. Select
Глубокое понимание принципов go-channel и select
8. Параллелизм
1. Корутина, связанная с
Механизм планирования сопрограмм Golang и настройка производительности GOMAXPROCS
Перейти к параллельному анализу планировщика для реализации пула сопрограммперепечатывать
2. Атомарность, видимость, порядок
Ядро параллельного программирования Golang — видимость памяти
3. Контроль параллелизма
Углубленный golang - контроль параллелизма и связь с горутинами
Управление параллелизмом через контекст в переводе Go
горутина и канал go concurrency, введение в управление параллелизмом
9. Особенности языка
1. Goroutine
2. Channel
Golang — горутина (coroutine) и канал (pipe)
Глубокое понимание канала Голанга
3. Модель GMP
Глубокое понимание канала Голанга
GMP-модель планировщика Golang
тайна go concurrency: модель GMP
Анимированная иллюстрация! Почему в модели GMP есть P?
10. Каркас
1. Веб-фреймворк
Медленный разговор о распространенных платформах веб-разработки Go | Месяц тем Go
1.1 Revel
1.2 Beego
1.3 Martini
1.4 Gin Gonic
1.5 Buffalo
1.6 Goji
1.7 Tiger Tonic
1.8 Gocraft
1.9 Mango
1.10 GORM
2. Микросервисная структура
2.1 go-kit
2.2 Micro
2.3 go-zero
2.4 gRPC
Одиннадцать, анализ производительности
1. Анализ производительности языка Go
анализ производительности go pprof
Анализ производительности программы Go 101
golang использует pprof и go-torch для анализа производительности
XII устранение неполадок
Тринадцать, интервью Голанга
Синусоидальная загрузка ЦП для контроля языка Go | Месяц темы Go