Как на самом деле устроен тип Map в Golang? | Golang под капотом
В этом видео мы в деталях разберемся, как устроен тип Map в Go и сможем ответить на некоторые очень интересные вопросы:
- зачем заранее аллоцировать память под мапы?
- почему порядок их обхода случайный?
- почему нельзя взять ссылку на элемент мапы?
- и др.
----
❤️ Если у вас есть желание поддержать развитие канала:
- 👾 Мой канал в Telegram:
- 🗣 Чат в Telegram: zsSZ63wEJDs3NGVi
- 👀 Golang Digest: - мои регулярные подборки интересных материалов по Go.
----
Видео про Хэш-таблицы:
Видео про дженерики:
Видео про Slice:
----
Исходный код Map в официальном репозитории Go:
Тайм-коды
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 Вывод функции () - почему он фиксированный?
33:14 Подводим итоги
33:45 Заключение
#golang #go #tuzov
1 view
1033
468
21 hour ago 00:05:48 0
В России построят Мега тюрьму вместо базы Газпрома | Побег из нее не возможен
1 day ago 00:30:16 0
Цирки с животными: что думают люди и какова реальность на самом деле?
1 day ago 00:00:00 0
27 мая ! Запуск Акции + Заработок в интернете! Доходы от 1000$ в месяц! Начало в 17:10 Москвы
1 day ago 00:18:26 0
ИИ анализирует Коран и Библию — Результаты удивляют!
1 day ago 00:29:27 0
Ей 84, и она не боится. Блокадница Людмила Васильева — голос протеста