В этой теме ты разберёшь базовые значения Go и научишься выводить поведение программы из типов, правил копирования и времени вычисления.
Разберём, что копирует присваивание и как тип задаёт допустимые операции. Затем свяжем zero value, переполнение, явные конверсии, константы и выравнивание структур с правилами языка.
Слайс передали в функцию. Изменение элемента видно снаружи, а после append результат зависит от запаса ёмкости. Маленький подслайс может удерживать весь исходный буфер. По модели заголовка и общего массива разберём, когда копировать данные и как отделить область для роста.
Разберём контракт map и отделим гарантии языка от устройства конкретной версии рантайма.
Свяжем байтовое представление строки с Unicode, стоимостью конверсий и удержанием памяти.
Покажем, как удовлетворение интерфейсу определяется набором методов и почему интерфейсное значение может быть ненулевым при nil-указателе.
Проследим момент вычисления замыканий и defer, а затем отделим управляемую ошибку от аварийного раскручивания стека.
Разберём параметры типов через множества допустимых типов и сравним дженерик с интерфейсом поведения.
Проследим, как Go выбирает версии модулей и почему пакет, модуль и репозиторий имеют разные границы.