💬 Для каких целей в Go может использоваться пустая структура?
☑️ Пустая структура (
☑️ Пустые структуры часто используются в каналах для передачи сигналов. Это полезно для синхронизации горутин или передачи сигналов без передачи данных.
☑️ Иногда пустые структуры используются как маркеры в сложных структурах данных или для реализации определённых паттернов проектирования, таких как Singleton или Null Object.
☑️ Пустая структура (
struct{}{}
) не занимает места в памяти. Это делает её идеальной для создания коллекций, где важны только ключи, а значения не нужны.// Использование для уникального набора значений (set)
uniqueSet := make(map[string]struct{})
uniqueSet["value1"] = struct{}{}
// Проверка наличия значения
_, exists := uniqueSet["value1"]
☑️ Пустые структуры часто используются в каналах для передачи сигналов. Это полезно для синхронизации горутин или передачи сигналов без передачи данных.
done := make(chan struct{})
go func() {
// ...
done <- struct{}{} // Отправка сигнала о завершении
}()
<-done // Ожидание сигнала
☑️ Иногда пустые структуры используются как маркеры в сложных структурах данных или для реализации определённых паттернов проектирования, таких как Singleton или Null Object.
type Singleton struct{}
func (s Singleton) DoSomething() {
// Реализация метода
}
var instance Singleton
instance.DoSomething()