Junior — Middle
Como é que a mecânica de polimorfismo é implementada na linguagem Go?
sobes.tech IA
Resposta da IA
Na linguagem Go, o polimorfismo é implementado através de interfaces. A interface descreve um conjunto de métodos, e qualquer tipo que implemente esses métodos satisfaz automaticamente a interface.
Isto permite escrever funções e métodos que funcionam com diferentes tipos, desde que eles implementem a interface necessária.
Exemplo:
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Au"
}
type Cat struct {}
func (c Cat) Speak() string {
return "Miau"
}
func MakeSpeak(s Speaker) {
fmt.Println(s.Speak())
}
func main() {
dog := Dog{}
cat := Cat{}
MakeSpeak(dog) // saída: Au
MakeSpeak(cat) // saída: Miau
}
Dessa forma, o polimorfismo em Go é alcançado através de interfaces e ligação dinâmica de métodos em tempo de execução.