Как на самом деле устроен тип Map в Golang? | Golang под капотом

preview_player
Показать описание
В этом видео мы в деталях разберемся, как устроен тип 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 Вывод функции fmt.Println() - почему он фиксированный?
33:14 Подводим итоги
33:45 Заключение

#golang #go #tuzov
Рекомендации по теме
Комментарии
Автор

Пишу там новости, анонсы своих активностей и просто интересные мысли
Также с его помощью я получаю от вас оперативный фидбэк по роликам - что нравится, что не нравится, какой ролик делать следующим и т.п.

❤ Если у вас есть желание поддержать развитие канала:

Секретный телеграм-канал:

nikolay_tuzov
Автор

Это лучшее видео о внутренней кухне языка которое я видела. Бесконечная благодарность 💔💐

crazy_fedor
Автор

В самое сердце! Продолжай нести добро в этот мир!

АлександрМир-пч
Автор

Очень нравиться такой подход, а именно углубление в изучение решений разработчиков с разбором. Крайнее полезно, спасибо!

mini_clop
Автор

Самое крутое в ролике, что какие-то моменты ты проговорил один раз, но потом прошелся по моменту ещё раз, чтобы подробней объяснить тяжелые вещи, спасибо!

ГерманГебель-ыз
Автор

Как же я Вам благодарен! Один из лучших каналов в данном сегменте, спасибо!

theeasywaytr
Автор

Отличный обзор, Николай. Все разобрано по кирпичикам, очень легко и доступно воспринимается довольно таки сложная тема. Безграничный респект!

АлександрВасильев-ве
Автор

Да уж, спасибо тебе за труд в подготовке таких качественных материалов!

gaidarraskolnikov
Автор

Спасибо огромное за такое подробное и подкрепленное исходным кодом объяснение! :) Ждем видео о том, как устроены типы данных в Go! :) Это будет просто пушка :)

elvirakharunova
Автор

Огромное спасибо автору за подробный разбор То что надо!

КириллЗенков-чх
Автор

Спасибо большое за все эти уроки по ГО. Я очень люблю Low-Level понимание процессов и на каждом видео получил необычайное удовольствие.
Этот материал как раз тот, которого мне не хватало чтобы начать работать с ГО. (я не новичок и мне просто не хватало хорошего материала которые разъясняет все эти нюансы)

lizk
Автор

Объяснение великолепное, канал - супер. Очень хотелось бы увидеть в вашем исполнении разбор интерфейсов, а именно их внутренне устройство, что "под капотом" и как работает

virtualriot
Автор

Спасибо, отличное видео, хорошо освежает знания в памяти, ждем видео про устройство типов в го!

alexvol
Автор

Спасибо! Теперь я знаю как устроен тип map!

Dantesik
Автор

Друг ты реально топ))), вот это мужик!!! Спасибо за старания!!!

race-Vulcan
Автор

Чел, ты жётский, спасибо большое, очень грамотно объясняешь

sudobooo
Автор

о класс..сейчас чайка налью... и смотреть))).Всем приятного!!!🎉

smittychannel
Автор

Спасибо за труд. Хорошо объясняешь. Ждем продолжения

bakelev
Автор

Лучшее лекция по ИТ что я видел за долгое время

pavel_trpn
Автор

Что хочется поставить во главу угла, так это слова - Ролик отличный!

Я смотрел его после видео про мапы с GopherCona 2016 года + прочтения пары небольших статей на эту тему)

Мне казалось, что я уже смаплен на знания мап, и, по-началу ролика так и было, вы, мистер Старший разработчик категории 2, уточняли и чуть дополняли те моменты, что я выудил из GopherCon-a, и я уже было думал такой, что сейчас напишу -

Но в один момент я начал понимать, что просто начинаю понимать, а до этого я лишь думал, что я понимаю. Всё настолько просто и последовательно, с таким желанием, с подготовленной последовательной структурой, с желанием научить и быть полезным - прям топовый топ!

Спасибо, Николай - это было отличные и очень полезные 34 минуты и 32 секунды! Даже для того, кому казалось, что он уже что-то понимает!)

Ждём шедулер!)

shyrops