Продвинутые дженерики в новых версиях Go | Подготовка к собеседованию
Igor Panasyuk
0:00 / 0:00
Продвинутые дженерики в новых версиях Go | Подготовка к собеседованию
3 819 просмотров · 11 месяцев назад
Igor Panasyuk
3,07 тыс. подписчиков
3 819 просмотров · 11 месяцев назад
Материалы из видео - https://t.me/igoroutine/73
Курсы по программированию - https://igoroutine.courses/?utm_sourc...
В этом видео подробно разбираем продвинутые дженерики в Go и готовимся к собеседованию. Начнём со структур: как их создавать, писать конструкторы, какие есть ограничения и как работают методы со значением и ссылкой (method receiver). Затем перейдём к интерфейсам — по значению и по ссылке, разберём преобразование одного интерфейса в другой, устройство интерфейса File, ошибки при композиции (встраивании) и внутреннюю реализацию интерфейсов в Go. Далее обсудим generic интерфейсы: мотивацию, underlying типы, ограничения реализации, типы с методами, использование в переменных и реальные примеры применения. После этого рассмотрим мапы — создание, особенности ключей, вставку, удаление, очистку и копирование, а также покажем, как на их основе реализовать Set. В практической части разберём, как generics применяются в реальных задачах, особенности контекста параметризации, generic wrapper (обёртку над any), влияние generics на память и производительность, а в завершение познакомимся с итераторами push/pull и их ролью в современных Go-программах.
Telegram: https://t.me/igoroutine
VK: https://vk.com/igoroutine
Instagram: / igoroutine
YouTube: / @igoroutine
Таймкоды:
00:00:00 - Введение
00:00:13 - Структуры. Как создать структуру
00:01:10 - Структуры. Конструктор структуры
00:03:52 - Структуры. Ограничения у структур
00:05:21 - Структуры. Методы структур
00:07:40 - Структуры. Method receiver, особенности
00:14:52 - Интерфейсы. По значению
00:17:20 - Интерфейсы. По ссылке, особенности
00:23:07 - Интерфейсы. Преобразование одного интерфейса в другой (касты)
00:26:44 - Интерфейсы. Разбор интерфейса File
00:27:16 - Интерфейсы. Как нельзя объявлять интерфейсы
00:28:19 - Интерфейсы. Пустой интерфейс (any)
00:32:10 - Интерфейсы. Композиция (встраивание) интерфейсов
00:32:46 - Интерфейсы. Ошибки композиции (встраивания) интерфейсов
00:33:21 - Интерфейсы. Внутреннее устройство
00:38:19 - Generic интерфейсы. Мотивация
00:42:24 - Generic интерфейсы. Underlying тип
00:43:22 - Generic интерфейсы. Float интерфейс
00:44:05 - Generic интерфейсы. Ограничения реализации
00:47:54 - Generic интерфейсы. Тип с методами
00:51:40 - Generic интерфейсы. Использование в переменных
00:52:18 - Generic интерфейсы. Когда тип реализует интерфейсу
00:53:22 - Generic интерфейсы. Пример реального использования
00:55:22 - Мапы. Создание
00:56:00 - Мапы. Особенности ключей мапы
00:58:19 - Мапы. Как вставлять в мапу
00:58:38 - Мапы. Как получать значение из мапы
01:01:14 - Мапы. Как удалять значение из мапы
01:02:12 - Мапы. Как получать количество элементов и очистить мапу
01:02:23 - Мапы. Итерация по элементам мапы
01:03:03 - Мапы. Как копировать мапы
01:03:42 - Мапы. Как написать Set на мапе
01:04:19 - Использование generics на практике
01:08:07 - Задачка на generics. Особенность контекста параметризации
01:11:05 - Дополнительный материал
01:11:16 - За сколько работают generics по памяти
01:16:37 - Generic wrapper (обёртка над any)
01:18:28 - Итераторы. Краткий обзор. Push/Pull итераторы
01:27:11 - Финал