Назад к вопросам
Middle
231
questionbank
Какой вес имеет пустая структура в Go?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Вес пустой структуры struct{} в Go составляет 0 байт.
Это особенность языка, которая позволяет использовать пустые структуры для различных целей, не расходуя память. Например:
- Для реализации множеств (set) с помощью мап핑а
map[ключ]struct{}. Важно только наличие ключа, значение не имеет значения. - В качестве индикатора сигнала в каналах, когда важен сам факт получения сообщения, а не его содержимое.
// Пример использования пустой структуры для множества
set := make(map[string]struct{})
set["item1"] = struct{}{} // Добавляем элемент
_, exists := set["item1"] // Проверяем наличие элемента
fmt.Println(exists) // true
// Пример использования пустой структуры в канале
ch := make(chan struct{})
go func() {
// Отправляем сигнал
ch <- struct{}{}
}()
// Ожидаем сигнал
<-ch