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-ро "мерасанд" ва метавонанд онҳоро мустақиман истифода баранд.