Junior — Middle
Explicați conceptul de sumă de tipuri în limbajul Go și utilizarea sa
sobes.tech AI
Răspuns de la AI
În limbajul Go, conceptul de tip sumă (sum type) este implementat prin intermediul interfețelor și permite descrierea variabilelor care pot lua valori din mai multe tipuri diferite, unite printr-o interfață comună.
Un tip sumă este o modalitate de a exprima că o valoare poate fi unul dintre mai multe tipuri, ceea ce este util pentru gestionarea diferitelor variante de date într-un singur loc.
Exemplu de utilizare:
package main
import "fmt"
// Definim o interfață care combină diferite tipuri
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("Aria:", s.Area())
}
func main() {
var s Shape
s = Circle{Radius: 5}
printArea(s)
s = Rectangle{Width: 3, Height: 4}
printArea(s)
}
Aici, interfața Shape acționează ca un tip sumă pentru Circle și Rectangle. Acest lucru permite funcției să accepte diferite tipuri unite printr-un comportament comun.