Пустая структура {} — это тип структуры без полей, которая занимает ноль байт памяти в Go. Это делает её идеальной для случаев, когда тебе нужен лёгкий заполнитель или механизм сигнализации.
Отслеживание наличия ключей:
visited := map[string]struct{}{}
visited["example"] = struct{}{}
if _, exists := visited["example"]; exists {
// Ключ присутствует
}
Сигнализация через каналы:
done := make(chan struct{})
go func() {
// Делаем какую-то работу...
close(done) // Сигнализируем об окончании
}()
<-done // Ждём сигнала
Пустая структура особенно ценна в конкурентных Go-программах, где тебе нужно координировать goroutines без затрат на передачу реальных данных.
Пустая структура в Go занимает ноль байт памяти, что делает её более эффективной по памяти, чем использование boolean значения в качестве значения map для отслеживания существования ключа.
Новый — ещё не проверен сообществом
Вы