Olá!
Otávio, já tinha tentado isso... Não deu certo.
Abaixo está o código:
Esse é o arquivo main.go
package main
import (
"fmt"
"banco\contas"
)
func main() {
contaFagner := contas.contaCorrente{Titular: "Fagner", Saldo: 300}
contaRodrigo := contas.contaCorrente{Titular: "Rodrigo", Saldo: 500}
status := contaFagner.tranferir(100, &contaRodrigo)
fmt.Println(status)
fmt.Println(contaFagner)
fmt.Println(contaRodrigo)
}
Esse é o arquivo contaCorrente.go
package contas
type contaCorrente struct {
Titular string
NumeroAgencia int
NumeroConta int
Saldo float64
}
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 Infuficiente"
}
}
func (c *contaCorrente) depositar(valorDoDeposito float64) (string, float64) {
if valorDoDeposito > 0 {
c.Saldo += valorDoDeposito
return "Deposito realizado com sucesso! Novo Saldo: R$", c.Saldo
} else {
return "O valor do deposito é menor que zero. Saldo Atual: R$", c.Saldo
}
}
func (c *contaCorrente) tranferir(valorTransferencia float64, constaDestino *contaCorrente) bool {
if valorTransferencia < c.Saldo && valorTransferencia > 0 {
c.Saldo -= valorTransferencia
constaDestino.depositar(valorTransferencia)
return true
} else {
return false
}
}