Sobes.tech
Junior — Middle

Magyarázza el a típusösszeg fogalmát a Go nyelvben és annak használatát

sobes.tech MI

Válasz az MI-től

A Go nyelvben a típus-szum (sum type) fogalma interfészeken keresztül valósul meg, és lehetővé teszi olyan változók leírását, amelyek különböző típusok értékeit vehetik fel, melyeket közös interfész köt össze.

A típus-szum egy módja annak, hogy kifejezzük, hogy egy érték több típus egyikéhez tartozhat, ami hasznos az adatok különböző változatainak egy helyen történő kezelésében.

Használati példa:

package main
import "fmt"

// Olyan interfészt definiálunk, amely különböző típusokat egyesít
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("Terület:", s.Area())
}

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

Itt a Shape interfész mint összeg típus működik a Circle és Rectangle esetében. Ez lehetővé teszi, hogy a függvény különböző típusokat fogadjon el, melyeket közös viselkedés köt össze.