Sobes.tech
Junior — Middle

Como indicar ao compilador que uma classe específica implementa uma interface determinada?

sobes.tech IA

Resposta da IA

Em Go, a implementação de interfaces ocorre de forma implícita: se um tipo implementa todos os métodos de uma interface, ele é automaticamente considerado como implementando essa interface. Não é necessário indicá-lo explicitamente.

Exemplo:

package main

import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct {}

func (d Dog) Speak() string {
    return "Au au!"
}

func main() {
    var s Speaker
    d := Dog{}
    s = d // Dog implementa a interface Speaker
    fmt.Println(s.Speak())
}

Se desejar verificar explicitamente se um tipo implementa uma interface, pode usar uma verificação de compilação:

var _ Speaker = (*Dog)(nil) // O compilador verificará se *Dog implementa a interface Speaker

Dessa forma, em Go, as interfaces são implementadas automaticamente quando os métodos necessários estão presentes.