Sobes.tech
Junior — Middle

Hogyan valósítható meg egy alap osztály metódusának hívása beépített komponensből vagy struktúrából?

sobes.tech MI

Válasz az MI-től

Go-ban az beágyazott struktúrák (embedding) lehetővé teszik, hogy egy típus egy másikba legyen beágyazva, ami lehetővé teszi a beágyazott típus módszereinek közvetlen használatát. A bázistípus (beágyazott) módszerének meghívásához hozzáférhetünk a mező nevével.

Példa:

package main

import "fmt"

type Base struct{}

func (b Base) Hello() {
    fmt.Println("Helló a Base-ből")
}

type Derived struct {
    Base
}

func (d Derived) Hello() {
    fmt.Println("Helló a Derived-ből")
    // A bázistípus módszerének hívása
    d.Base.Hello()
}

func main() {
    d := Derived{}
    d.Hello()
}

Ebben a példában a Derived struktúra Hello metódusa meghívja a beágyazott Base struktúra Hello metódusát a d.Base.Hello() segítségével. Így kifejezetten meghívhatja a bázisklasz metódusát a beágyazott komponensből.