Sobes.tech
Junior — Middle

Spiega il concetto di somma di tipi nel linguaggio Go e il suo utilizzo

sobes.tech AI

Risposta dell'AI

Nel linguaggio Go, il concetto di tipo somma (sum type) viene implementato tramite interfacce e consente di descrivere variabili che possono assumere valori di diversi tipi, unificati da un'interfaccia comune.

Un tipo somma è un modo per esprimere che un valore può essere di uno tra diversi tipi, il che è utile per gestire diverse varianti di dati in un unico posto.

Esempio di utilizzo:

package main
import "fmt"

// Definiamo un'interfaccia che combina diversi tipi
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("Area:", s.Area())
}

func main() {
    var s Shape
    s = Circle{Radius: 5}
    printArea(s)
    s = Rectangle{Width: 3, Height: 4}
    printArea(s)
}

Qui, l'interfaccia Shape funge da tipo somma per Circle e Rectangle. Questo permette alla funzione di accettare diversi tipi unificati da un comportamento comune.