Тема 13. Основы Go (Golang Basics)¶
Курс параллельно даёт Python и Go. В темах 1–12 Go встречался эпизодически — как параллель к Python (срезы vs списки, struct vs dataclass, error vs exception). В этой теме разбираемся в Go системно: установка, типы, функции, ошибки, композитные структуры, методы и интерфейсы, пакеты и тестирование.
Лекции рассчитаны на студента, который уже изучил Python (темы 1–12) и теперь хочет понять, как те же задачи решаются в статически типизированном компилируемом языке.
Лекции¶
- Знакомство с Go — история, установка,
go mod, первая программа, инструментарий (gofmt,golangci-lint, VS Code). - Переменные, типы и управляющие конструкции —
var/const/iota, числовые типы,if/for/switch,defer, указатели. - Функции, ошибки и
panic/recover— multiple return, variadic, замыкания, functional options;errorкак значение,errors.Is/errors.As, оборачивание через%w. - Композитные типы — массивы, срезы (slice header), карты, структуры, теги, embedding.
- Методы и интерфейсы — value vs pointer receiver, structural typing,
any, type assertion и type switch, канонические интерфейсы stdlib, дженерики. - Пакеты и тестирование — пакеты и видимость,
internal/,go mod,go.sum,testing, table-driven tests, бенчмарки, fuzz.
Что дальше¶
Тема 14 — продвинутые темы Go: конкурентность (горутины, каналы, select), контексты, HTTP, работа с БД через database/sql, профилирование и race detector.