Sobes.tech
Junior — Middle

De que maneiras é possível verificar se a estrutura corresponde à interface definida?

sobes.tech IA

Resposta da IA

No Go, a verificação de conformidade de uma estrutura com uma interface ocorre de forma implícita — se a estrutura implementar todos os métodos da interface, ela está em conformidade.

Para uma verificação explícita na fase de compilação, muitas vezes usa-se uma verificação de compilação por atribuição:

type MyInterface interface {
    DoSomething()
}

type MyStruct struct {}

func (m MyStruct) DoSomething() {}

// Verificação de compilação
var _ MyInterface = (*MyStruct)(nil)

Se MyStruct não implementar MyInterface, o compilador gerará um erro. Essa é uma maneira conveniente de garantir que a estrutura esteja em conformidade com a interface sem executar o programa.