1
resposta

[Dúvida] Contrato com Interface

Bom dia.

No exercício já descreve que a Interface no Go é implementada de forma implícita, sendo assim, caso seja alterado a função que faz o contrato, por exemplo, adicionar mais um parâmetro, a função que invoca a implementação irá quebrar.

Existe alguma forma de deixa visível que a função faz parte de um contrato?

Exemplo o @Override do Java.

Pela atenção, agradeço!

1 resposta

Olá Thiago!

Entendo sua dúvida sobre como deixar visível que uma função faz parte de um contrato ao implementar uma interface em Go. No Go, não existe uma palavra-chave específica como o "@Override" do Java para indicar que uma função está implementando uma interface.

No entanto, é possível utilizar um comentário na função para deixar claro que ela está implementando um contrato. Por exemplo:

type MinhaInterface interface {
    MinhaFuncao() int
}

type MinhaStruct struct {}

// MinhaFuncao implementa o contrato da interface MinhaInterface
func (s MinhaStruct) MinhaFuncao() int {
    // implementação da função
    return 0
}

Nesse exemplo, o comentário // MinhaFuncao implementa o contrato da interface MinhaInterface deixa claro que a função MinhaFuncao está implementando o contrato da interface MinhaInterface.

Embora não seja obrigatório, adicionar esse tipo de comentário pode ajudar a documentar o código e facilitar a compreensão para outras pessoas que venham a trabalhar no projeto.

Espero ter ajudado e bons estudos!