Junior — Middle
Εξηγήστε την έννοια του άθροισματος τύπων στη γλώσσα Go και τη χρήση του
sobes.tech AI
Απάντηση από AI
Στη γλώσσα προγραμματισμού Go, η έννοια του τύπου άθροισης (sum type) υλοποιείται μέσω διεπαφών (interfaces) και επιτρέπει την περιγραφή μεταβλητών που μπορούν να λάβουν τιμές από διάφορους τύπους, ενωμένους από μια κοινή διεπαφή.
Ένας τύπος άθροισης είναι ένας τρόπος να εκφράσουμε ότι μια τιμή μπορεί να είναι ένας από πολλούς τύπους, κάτι που είναι χρήσιμο για την επεξεργασία διαφορετικών παραλλαγών δεδομένων σε ένα μέρος.
Παράδειγμα χρήσης:
package main
import "fmt"
// Ορίζουμε μια διεπαφή που συνδυάζει διαφορετικούς τύπους
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("Εμβαδόν:", s.Area())
}
func main() {
var s Shape
s = Circle{Radius: 5}
printArea(s)
s = Rectangle{Width: 3, Height: 4}
printArea(s)
}
Εδώ, η διεπαφή Shape λειτουργεί ως τύπος άθροισης για το Circle και το Rectangle. Αυτό επιτρέπει στη λειτουργία να δέχεται διαφορετικούς τύπους που ενώνονται από μια κοινή συμπεριφορά.