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 үчүн жыйынтык түрү катары иштейт. Бул функцияга ар кандай түрлөрдү кабыл алууга мүмкүндүк берет, алар жалпы жүрүм-турум менен бириктирилген.