Расскажи про пустую структуру struct{}. Кейсы использования, сколько памяти занимает?

В Go пустая структура struct{} — это структура без полей.

Короткий ответ

Что ответить на собеседовании

В Go пустая структура struct{} — это структура без полей.

Подробный разбор

Ответ с пояснениями

В 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{} — эффективный способ обозначить присутствие без хранения данных.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее