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