Какой размер у пустой структуры?

Middle
1.4k просмотров
AFK Offer AI

Ноль байт. struct{} не занимает памяти. Все значения struct{}{} имеют один и тот же адрес (runtime.zerobase).

Используется как сигнальный тип: chan struct{} для уведомлений без данных, map[string]struct{} как множество (set) — экономит память по сравнению с map[string]bool.

done := make(chan struct{})
go func() {
    // работа
    close(done) // сигнал завершения
}()
<-done
Следующий вопрос

Как работает context.WithTimeout?