Junior — Middle
What is the main role of the Union primitive and in what situations is it used?
sobes.tech AI
Answer from AI
Go does not have a primitive union type, but similar functionality is achieved through interfaces and type switches. The main idea of a union is to store a value of one of several types in a single variable. In languages with union types (like C), this saves memory and allows working with different data types in one place.
In Go, interfaces such as interface{} are used for this purpose, and then type assertion or type switch is used to determine the specific type at runtime.
Example of using an interface to mimic a 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")
}
}
This is used when you need to handle data of different types in one function or structure, for example, when parsing JSON with different possible value types.