Sobes.tech
Junior — Middle

Ներկայացրեք Տիպ-հավաքի կոնցեպցիան Go լեզվում և դրա օգտագործումը

sobes.tech AI

Պատասխան AI-ից

Go լեզվում, գումարի տեսակ (sum type) իրականացվում է ինտերֆեյսների միջոցով և թույլ է տալիս նկարագրել փոփոխականներ, որոնք կարող են ընդունել տարբեր տեսակների արժեքներ, որոնք միավորված են ընդհանուր ինտերֆեյսով:

Գումարի տեսակն այն միջոցն է արտահայտելու, որ արժեքը կարող է լինել մի քանի տեսակներից մեկը, ինչը օգտակար է տարբեր տվյալների տարբերակների մշակման համար մեկ վայրում:

Օգտագործման օրինակ՝

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 համար: Սա թույլ է տալիս ֆունկցիային ընդունել տարբեր տեսակներ, որոնք միավորված են ընդհանուր վարքով։