Sobes.tech
Middle

Goда мурасимдикти имитациялоо үчүн интеграцияланган түзүмдөрдү кантип колдонсо болот?

sobes.tech AI

AIден жооп

Go тилинде классикалык мурасчылык жок, объект-бакайган тилдердей, бирок ички түзүмдөрдү (embedding) колдонуп мурасчылыкты имитациялоо мүмкүн. Бул бир түзүмдү башкасына кошуу аркылуу, талаанын атын көрсөтпөстөн, ички түзүмдүн ыкмаларын "мурас кылууга" мүмкүндүк берет.

Мисал:

package main
import "fmt"

type Animal struct {
    Name string
}

func (a Animal) Speak() {
    fmt.Println(a.Name, "айтуу")
}

type Dog struct {
    Animal // ички түзүм
    Breed string
}

func main() {
    d := Dog{
        Animal: Animal{Name: "Bobby"},
        Breed:  "Иттер",
    }
    d.Speak() // Animal ыкмасын Dog аркылуу чакыруу
}

Ушул жол менен, Dog "Animal" ыкмаларын мурас кылып алат жана түздөн-түз колдоно алат.