У нас вы можете посмотреть бесплатно Как на самом деле устроен тип Map в Golang? | Golang под капотом или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
В этом видео мы в деталях разберемся, как устроен тип Map в Go и сможем ответить на некоторые очень интересные вопросы: зачем заранее аллоцировать память под мапы? почему порядок их обхода случайный? почему нельзя взять ссылку на элемент мапы? и др. ---- ❤️ Если у вас есть желание поддержать развитие канала: / tuzov https://boosty.to/nikolay.tuzov 👾 Мой канал в Telegram: https://t.me/ntuzov 🗣 Чат в Telegram: https://t.me/+zsSZ63wEJDs3NGVi 👀 Golang Digest: https://t.me/golang_digest - мои регулярные подборки интересных материалов по Go. ---- Видео про Хэш-таблицы: • Хэш-таблицы за 10 минут Видео про дженерики: • Пробуем дженерики Go на практике Видео про Slice: • GoLang Slice в деталях, простым языком ---- Исходный код Map в официальном репозитории Go: https://github.com/golang/go/blob/mas... Тайм-коды 00:00 Вступление 00:24 Что такое Map? 00:55 Простая реализация - перебор 01:56 Как сделать лучше - разбиваем на бакеты 03:21 Хэш-функция - равномерное распределение по бакетам 05:08 Как реализовать Map без дженериков? 08:20 v = m[k]: во что на самом деле это скомпилируется? 09:25 Все преобразования операций с Map 10:27 Внутренняя структура Map 11:33 Low order bits (LOB) - выбор бакета 13:39 Структура бакета 15:31 Исходный код заголовка Map (hmap) 16:05 Исходный код поиска значения в Map (mapaccess1) 23:30 Переполнение бакета 24:47 Рост Map при заполнении 27:05 Эвакуация данных 28:02 Как избежать эвакуацию данных и ускорить программу - аллокация памяти 28:39 Почему нельзя взять указатель на элемент Map 29:26 Или можно..? 30:12 Порядох обхода мапы - почему он случайный? 31:47 Вывод функции fmt.Println() - почему он фиксированный? 33:14 Подводим итоги 33:45 Заключение #golang #go #tuzov