Sobes.tech
Back to questions
Junior — Middle
84

Каким образом в языке Go осуществляется механика полиморфизма?

Companies where asked
ГазпромГазпром
WildberriesWildberries

Answer from AI

sobes.tech AI

В языке Go полиморфизм реализуется через интерфейсы. Интерфейс описывает набор методов, а любой тип, который реализует эти методы, автоматически удовлетворяет интерфейсу.

Это позволяет писать функции и методы, которые работают с разными типами, если они реализуют нужный интерфейс.

Пример:

package main
import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct {}
func (d Dog) Speak() string {
    return "Гав"
}

type Cat struct {}
func (c Cat) Speak() string {
    return "Мяу"
}

func MakeSpeak(s Speaker) {
    fmt.Println(s.Speak())
}

func main() {
    dog := Dog{}
    cat := Cat{}
    MakeSpeak(dog) // вывод: Гав
    MakeSpeak(cat) // вывод: Мяу
}

Таким образом, полиморфизм в Go достигается через интерфейсы и динамическое связывание методов во время выполнения.