
Встраивание структур в Go: короткий гайд с примерами
Встраивание (embedding) — механизм Go, который заменяет классическое наследование. Разбираем синтаксис, продвижение методов, конфликты имён и типичные ловушки на рабочих примерах для Go 1.22+.

Встраивание (embedding) — механизм Go, который заменяет классическое наследование. Разбираем синтаксис, продвижение методов, конфликты имён и типичные ловушки на рабочих примерах для Go 1.22+.

Встраивание (embedding) в Go выглядит как наследование, но работает иначе — и это ловушка для тех, кто пришёл из Java или Python. Разбираем на реальном коде, где embedding спасает, где ломает, и чем платите за удобство.

Указатели — одна из первых тем, где новички в Go принимают решения наугад. Разбираем конкретные ситуации, в которых передача по указателю оправдана, и те, где она только мешает — с замерами, примерами и таблицей выбора.

Механизм iota в Go выглядит простым — пока не получаешь неожиданное значение после добавления строки в блок const. Разбираем пять ошибок, которые делают почти все начинающие Go-разработчики, и показываем, как их избежать.

Разбираемся, как объявлять константы в Go, зачем нужна iota, как она считает и где ломает ожидания. К концу инструкции у вас будут работающие перечисления, битовые маски и понимание, когда iota не стоит использовать.

Go позволяет объявлять типизированные и нетипизированные константы, а встроенный счётчик iota генерирует последовательности без магических чисел. Разбираем синтаксис, правила типизации и приёмы, которые экономят строки кода.

Пакет fmt в Go — это не только Println. Разбираем глаголы форматирования, ширину полей, выравнивание, работу со структурами и типичные ошибки — на фрагментах, которые можно запустить прямо сейчас.

Пакет fmt в Go покрывает 90% задач по форматированию строк, но его глаголы, флаги и интерфейсы Stringer/Formatter работают не так, как printf в C. Разбираемся, что нужно усвоить до написания первого сервиса.

Строки в Go — неизменяемые последовательности байтов, а не символов. Это различие ломает интуицию при подсчёте длины, нарезке и итерации. Разбираем внутреннее устройство, связь строк с байтами и рунами и показываем, как избежать типичных ошибок на старте.

Строки в Go выглядят привычно, но устроены иначе, чем в Python или JavaScript. Разберём конкретные ловушки — от подсчёта символов до неожиданного расхода памяти при конкатенации — и покажем, как их обойти.

Go поставляется с собственным тестовым фреймворком прямо в стандартной библиотеке — ничего ставить не нужно. Разберём, как написать, запустить и прочитать результат первого теста за пятнадцать минут.

Строки в Go — не массив символов, а неизменяемая последовательность байтов. Разберём, как их создавать, склеивать, разбирать на руны и не попасть в ловушку с юникодом — от первой переменной до уверенной работы с кириллицей.