Sobes.tech
Middle

Kā izmantot iebūvētās struktūras, lai imitētu mantošanu Go?

sobes.tech AI

Atbilde no AI

Go valodā nav klasiskās mantošanas kā objektorientētajās valodās, bet var izmantot iebūvētas struktūras (embedding), lai imitētu mantošanu. Tas tiek panākts, iekļaujot vienu struktūru citā bez lauka nosaukuma norādīšanas, kas ļauj "manto" iebūvētās struktūras metodes.

Piemērs:

package main
import "fmt"

type Animal struct {
    Name string
}

func (a Animal) Speak() {
    fmt.Println(a.Name, "runā")
}

type Dog struct {
    Animal // iebūvēta struktūra
    Breed string
}

func main() {
    d := Dog{
        Animal: Animal{Name: "Bobby"},
        Breed:  "Vācu aitu suns",
    }
    d.Speak() // izsauc Animal metodi caur Dog
}

Tādējādi, Dog "manto" Animal metodes un var tās tieši izmantot.