Назад к вопросам
Senior
3
Расскажи про пустую структуру struct{}. Кейсы использования, сколько памяти занимает?
Компании, где спрашивали
СБК ПАРУС
Ответ от нейросети
sobes.tech AI
В Go пустая структура struct{} — это структура без полей.
Особенности:
- Занимает 0 байт памяти.
- Используется для обозначения отсутствия данных, но с возможностью иметь тип.
Кейсы использования:
- Множества: можно использовать
map[KeyType]struct{}для хранения уникальных ключей без дополнительной нагрузки по памяти. - Сигналы и синхронизация: канал типа
chan struct{}часто используется для уведомлений без передачи данных. - Пустые значения: когда нужно передать или вернуть тип, но без содержимого.
Пример использования множества:
set := make(map[string]struct{})
set["apple"] = struct{}{}
if _, exists := set["apple"]; exists {
fmt.Println("apple есть в множестве")
}
Таким образом, struct{} — эффективный способ обозначить присутствие без хранения данных.