Junior — Middle
Explica el concepto de suma de tipos en el lenguaje Go y su uso
sobes.tech AI
Respuesta de la IA
En el lenguaje Go, el concepto de tipo suma (sum type) se implementa mediante interfaces y permite describir variables que pueden tomar valores de diferentes tipos, unidos por una interfaz común.
Un tipo suma es una forma de expresar que un valor puede ser de uno de varios tipos, lo cual es útil para manejar diferentes variantes de datos en un solo lugar.
Ejemplo de uso:
package main
import "fmt"
// Definimos una interfaz que combina diferentes tipos
type Shape interface {
Area() float64
}
type Circle struct {
Radius float64
}
func (c Circle) Area() float64 {
return 3.14 * c.Radius * c.Radius
}
type Rectangle struct {
Width, Height float64
}
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
func printArea(s Shape) {
fmt.Println("Área:", s.Area())
}
func main() {
var s Shape
s = Circle{Radius: 5}
printArea(s)
s = Rectangle{Width: 3, Height: 4}
printArea(s)
}
Aquí, la interfaz Shape actúa como un tipo suma para Circle y Rectangle. Esto permite que la función acepte diferentes tipos unidos por un comportamiento común.