🧩 Cap 11: Interfaces Implícitas, Polimorfismo Estrutural (Duck Typing) e any - Exemplos Práticos
Código executável completo demonstrando os conceitos abordados em Go.
🗺️ Fluxo de Execução
flowchart TD
INTERFACE["type Pagador interface { Pagar(valor float64) bool }"]
PIX["type Pix struct"] -->|"Implementa Pagar() sem palavra implements"| INTERFACE
CARTAO["type Cartao struct"] -->|"Implementa Pagar() sem palavra implements"| INTERFACE
style INTERFACE fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style PIX fill:#e8f5e9,stroke:#4caf50,stroke-width:1px
style CARTAO fill:#e8f5e9,stroke:#4caf50,stroke-width:1px
📄 Código de Demonstração (interfaces.go)
package main
import "fmt"
type Notificador interface {
\Enviar(msg string)
}
type EmailNotificador struct{}
func (e EmailNotificador) Enviar(msg string) {
\fmt.Println("[Email Enviado]:", msg)
}
func DispararAlerta(n Notificador, alerta string) {
\n.Enviar(alerta)
}
func main() {
\DispararAlerta(EmailNotificador{}, "Falha no servidor detectada!")
}
🚀 Saída Esperada no Terminal
$ go run interfaces.go
[Email Enviado]: Falha no servidor detectada!
🧭 Navegação Rápida
| 📖 Teoria | 📊 Slides | 🧠 Quiz | 💻 Exemplos | 🧩 Exercícios | | :— | :— | :— | :— | :— | | Ler Tópico | Ver Slides | Fazer Quiz | Ver Código | Praticar |