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