В этом уроке:
В этом видео автор подробно рассматривает внутреннее устройство массивов и слайсов в языке Go, начиная с базовых понятий и постепенно переходя к более сложным механизмам.
Автор видео — Владимир Балун, Ex-Team Lead в Яндекс, ex-ведущий разработчик в Ozon, ex-разработчик в Mail.ru, Kaspersky Lab, Тинькофф, преподаватель в Balun.Courses.
В начале видео автор объясняет про концепцию массивов, объясняя их устройство и способы работы с ними. Он рассматривает различные аспекты, включая перемещение массива в стеке, итерацию по массивам и особенности аллокации памяти. Также обсуждается передача массивов в функции и связанные с этим нюансы.
Далее внимание уделяется слайсам — более гибкой структуре данных в Go. Рассматриваются темы реаллокации слайсов, резервирования памяти, создания слайсов без инициализации и модификации строк. Особое внимание уделяется приведению слайсов в строки и обратно без копирования, что позволяет оптимизировать производительность.
Автор также обсуждает передачу слайсов в функции, итерацию по слайсам и оптимизацию этих процессов. Рассматриваются методы получения слайсов из массивов и конвертации слайсов в массивы и указатели на массивы. Обсуждаются способы удаления элементов из начала и конца слайса, реализация стека и очереди, а также увеличение и уменьшение размера слайса.
Важной частью видео является обсуждение аллокации слайсов в памяти, очистки слайсов и различий между пустыми и нулевыми слайсами. Автор объясняет, как сравнивать слайсы, копировать их данные и почему функция append возвращает слайс. Также рассматриваются потенциальные проблемы с функцией append и её реализация.
- где и как аллоцируются массивы;
- как проаллоцировать срез без инициализации;
- как избежать утечек памяти при работе со срезами;
- тонкости и нюансы при работе с массивами и срезами.
В этом видео автор подробно рассматривает внутреннее устройство массивов и слайсов в языке Go, начиная с базовых понятий и постепенно переходя к более сложным механизмам.
Автор видео — Владимир Балун, Ex-Team Lead в Яндекс, ex-ведущий разработчик в Ozon, ex-разработчик в Mail.ru, Kaspersky Lab, Тинькофф, преподаватель в Balun.Courses.
В начале видео автор объясняет про концепцию массивов, объясняя их устройство и способы работы с ними. Он рассматривает различные аспекты, включая перемещение массива в стеке, итерацию по массивам и особенности аллокации памяти. Также обсуждается передача массивов в функции и связанные с этим нюансы.
Далее внимание уделяется слайсам — более гибкой структуре данных в Go. Рассматриваются темы реаллокации слайсов, резервирования памяти, создания слайсов без инициализации и модификации строк. Особое внимание уделяется приведению слайсов в строки и обратно без копирования, что позволяет оптимизировать производительность.
Автор также обсуждает передачу слайсов в функции, итерацию по слайсам и оптимизацию этих процессов. Рассматриваются методы получения слайсов из массивов и конвертации слайсов в массивы и указатели на массивы. Обсуждаются способы удаления элементов из начала и конца слайса, реализация стека и очереди, а также увеличение и уменьшение размера слайса.
Важной частью видео является обсуждение аллокации слайсов в памяти, очистки слайсов и различий между пустыми и нулевыми слайсами. Автор объясняет, как сравнивать слайсы, копировать их данные и почему функция append возвращает слайс. Также рассматриваются потенциальные проблемы с функцией append и её реализация.