Sobes.tech
Назад к вопросам
Junior — Middle
71

Как реализовать вызов метода базового класса из встроенного компонента или структуры?

Ответ от нейросети

sobes.tech AI

В Go встроенные структуры (embedding) позволяют включать один тип в другой, что даёт возможность использовать методы встроенного типа напрямую. Чтобы вызвать метод базового (встроенного) типа, можно обратиться к нему через имя поля.

Пример:

package main

import "fmt"

type Base struct{}

func (b Base) Hello() {
    fmt.Println("Hello from Base")
}

type Derived struct {
    Base
}

func (d Derived) Hello() {
    fmt.Println("Hello from Derived")
    // Вызов метода базового типа
    d.Base.Hello()
}

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

В этом примере метод Hello структуры Derived вызывает метод Hello встроенной структуры Base через d.Base.Hello(). Таким образом, можно явно вызвать метод базового класса из встроенного компонента.