Какова основная роль примитива Union и в каких ситуациях его используют?
Ответ от нейросети
sobes.tech AI
В Go примитива Union как такового нет, но схожую роль выполняют интерфейсы и типы с использованием type switches. Основная идея union — это возможность хранить значение одного из нескольких типов в одной переменной. В языках, где есть Union (например, C), это экономит память и позволяет работать с разными типами данных в одном месте.
В Go для подобных целей используют интерфейсы, например, interface{}, и затем с помощью type assertion или type switch определяют конкретный тип во время выполнения.
Пример использования интерфейса для имитации union:
func process(value interface{}) {
switch v := value.(type) {
case int:
fmt.Println("int value", v)
case string:
fmt.Println("string value", v)
default:
fmt.Println("unknown type")
}
}
Используют такую конструкцию, когда нужно обрабатывать данные разных типов в одной функции или структуре, например, при парсинге JSON с разными возможными типами значений.