Все мы знаем, что пустая структура struct{} в Go действительно занимает ноль байт. Но как это реализовано?
Во время выполнения среда не выделяет под нее память, а вместо этого возвращает указатель на глобальную переменную zerobase, поэтому все экземпляры struct{} ссылаются на один и тот же адрес. Однако, сравнение указателей на пустые структуры ненадежно - два разных экземпляра могут как совпадать, так и различаться в зависимости от оптимизаций компилятора
22.06.2026
Похожее
28.09.2026
C на Go
Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo д...
25.09.2026
Бенчим джейсон
Автор на реальном API с нагрузкой 50M запросов/сутки)сравнивает производительнос...
24.09.2026
Rune
Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...
23.09.2026
Специализированные аллокаторы
В Go 1.27 появилась оптимизация выделения памяти для объектов размером до 80 бай...