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 тілінде интерфейстер және әдістердің динамикалық байланысы арқылы жүзеге асырылады.