1
resposta

Dúvida sobre interface

type verificarConta interface {
    Sacar(valor float64) string
}

Eu não entendi pq a interface retorna uma string, poderia me ajudar?

Poderia ser também um int ou float64?

1 resposta

Fala Bruno como vai?

Segundo a própria documentação do Google, denominamos interface como uma coleção de assinatura de método. Para exemplificar melhor observe o método 'sacar' da conta corrente:

func (c *ContaCorrente) Sacar(valorDoSaque float64) string {
    podeSacar := valorDoSaque > 0 && valorDoSaque <= c.saldo
    if podeSacar {
        c.saldo -= valorDoSaque
        return "Saque realizado com sucesso"
    } else {
        return "saldo insuficiente"
    }
}

Observe que o retorno desta função é uma mensagem informando se o saque foi realizado ou não. Sendo assim, quando criamos a interface que verifica a conta, é necessário utilizar a mesma assinatura do método referenciado.

Espero que te ajude e conte com a Alura!

: )