Back to questions
Газпром
Wildberries
Junior — Middle
84
Каким образом в языке Go осуществляется механика полиморфизма?
Companies where asked
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 достигается через интерфейсы и динамическое связывание методов во время выполнения.