Sobes.tech
Junior — Middle

Омӯзиши принсипи ва чӣ гуна дар забони Go татбиқ мешавад, метавонед шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Дар забони Go дарёфти меросии классикӣ, ки дар дигар забонҳои объектӣ-ориентатсияшуда вуҷуд дорад, вуҷуд надорад. Ба ҷои он, Go истифода мебарад композиция ва embedding барои такрори истифодаи коди ва васеъ кардани функсионал.

Embedding имкон медиҳад, ки як навъ (структура) дар дохили дигар дохил карда шавад, ва методҳои навъи дохилшуда барои навъи беруна дастрас мешаванд, ки ба мерос монанд аст.

Масалан:

type Animal struct {
    Name string
}

func (a Animal) Speak() string {
    return "..."
}

// Animal-ро дар Dog дохил мекунем

type Dog struct {
    Animal
}

func (d Dog) Speak() string {
    return "Гав!"
}

func main() {
    dog := Dog{Animal{Name: "Buddy"}}
    fmt.Println(dog.Name)       // Дастрасӣ ба майдони Animal
    fmt.Println(dog.Speak())    // Методҳои навишташуда
}

Ин тариқ, Go ба натиҷаи монанди мерос тавассути композиция ва embedding мерасонад, ва мураккабии ҳиерархияи классиро дур мекунад.