Sobes.tech
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.