Sobes.tech
Назад к вопросам
Junior — Middle
79

Какова основная роль примитива 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 с разными возможными типами значений.