Junior — Middle
Explique le concept de somme de types dans le langage Go et son utilisation
sobes.tech IA
Réponse de l'IA
Dans le langage Go, le concept de type somme (sum type) est implémenté via des interfaces et permet de décrire des variables pouvant prendre des valeurs de différents types, unifiés par une interface commune.
Un type somme est une façon d'exprimer qu'une valeur peut être de l'un ou l'autre plusieurs types, ce qui est utile pour gérer différentes variantes de données en un seul endroit.
Exemple d'utilisation :
package main
import "fmt"
// Définir une interface qui combine différents types
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("Surface :", s.Area())
}
func main() {
var s Shape
s = Circle{Radius: 5}
printArea(s)
s = Rectangle{Width: 3, Height: 4}
printArea(s)
}
Ici, l'interface Shape agit comme un type somme pour Circle et Rectangle. Cela permet à la fonction d'accepter différents types unifiés par un comportement commun.