Все мы знаем, что пустая структура struct{} в Go действительно занимает ноль байт. Но как это реализовано?
Во время выполнения среда не выделяет под нее память, а вместо этого возвращает указатель на глобальную переменную zerobase, поэтому все экземпляры struct{} ссылаются на один и тот же адрес. Однако, сравнение указателей на пустые структуры ненадежно - два разных экземпляра могут как совпадать, так и различаться в зависимости от оптимизаций компилятора
22.06.2026
Похожее
16.06.2026
Уровни микроархитектуры amd64
Возможно вы слышали про уровни микроархитектуры. Каждый уровень включает в себя ...
15.06.2026
Wi-Fi данные
Не знаю зачем вам это может буть нужно, но мне всегда нравятся статьи по работе ...
13.06.2026
Golang Ревью
Продолжение серии заметок о неочевидных и опасных поведениях Go, дополнение к пе...
08.06.2026
Эээксперименты
В Go есть "экспериментальные" возможности, чтобы вы могли опробовать новые функц...