Мапы в Go (Golang) за 5 минут: бакеты, tophash и случайный порядок обхода

12+
12+

1 просмотр

3 дня назад

ПожаловатьсяНарушение авторских прав
12+
12+

1 просмотр

3 дня назад

ПожаловатьсяНарушение авторских прав
12+
12+

1 просмотр

3 дня назад

Как устроена мапа в Go изнутри: хеш-таблица из бакетов, tophash, коллизии и overflow, рост с постепенной эвакуацией и почему порядок обхода каждый раз случайный. В конце — 3 вопроса с собеседования по мапам с разбором. Таймкоды: 0:00 Один код — три разных порядка 0:29 Мапа: запись, чтение, comma-ok, nil-мапа 1:07 Как устроена мапа: hmap, бакеты, хеш 1:56 tophash и коллизии 2:46 Рост мапы и эвакуация 3:41 Ключи и случайный порядок обхода 4:27 Мапа и горутины: concurrent map writes 5:06 На собеседовании спросят 6:03 Итоги и что дальше Код из ролика: m := map[string]int{"яблоко": 1, "банан": 2, "вишня": 3} for k := range m { fmt.Print(k, " ") } v, ok := m["слива"] // 0 false keys := make([]string, 0, len(m)); for k := range m { keys = append(keys, k) }; slices.Sort(keys) Предыдущий ролик — Слайсы в Go: https://youtu.be/dTBbY9c04-M Следующий — Мапы в Go 1.24+: Swiss Tables. Поддержать канал: https://dalink.to/sergey6852 #golang #go #программирование

Название:

Мапы в Go (Golang) за 5 минут: бакеты, tophash и случайный порядок обхода

Категория:

Разное