Sobes.tech
Junior — Middle

Go тилинде полиморфизм механизми кандай ишке ашырылат?

sobes.tech AI

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 тилинде полиморфизм интерфейстер жана методдордун динамикалык байланышы аркылуу жеткирилет.