Что выведет: m := map[string]struct{}{}; fmt.Println(unsafe.Sizeof(m))?

Senior
73 просмотров
AFK Offer AI

Выведет 8 (на 64-bit). Map — это указатель на runtime.hmap struct. Sizeof возвращает размер самого указателя, а не данных. Аналогично: unsafe.Sizeof(slice) == 24 (pointer + len + cap), unsafe.Sizeof(string) == 16 (pointer + len), unsafe.Sizeof(interface) == 16 (type + data pointers). Sizeof — размер header, не содержимого.

Следующий вопрос

Как спроектировать A/B testing platform на Go?