Resolvido:
package main
import (
"banco/clientes"
"banco/contas"
"fmt"
)
func main() {
// contaDoBruno := contas.ContaCorrente{Titular: clientes.Titular{
// Nome: "Bruno",
// CPF: "123.111.123.12",
// Profissao: "Desenvolvedor"},
// NumeroAgencia: 123, NumeroConta: 123456, Saldo: 100}
// fmt.Println(contaDoBruno)
clienteBruna := clientes.Titular{"Bruna", "123.123.123.12", "Desenvolvedora"}
contaDaBruna := contas.ContaCorrente{clienteBruna, 123, 123456, 100}
fmt.Println(contaDaBruna)
}
package contas
import "banco/clientes"
type ContaCorrente struct {
Titular clientes.Titular
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 insuficiente"
}
}
func (c *ContaCorrente) Depositar(valorDoDeposito float64) (string, float64) {
if valorDoDeposito > 0 {
c.Saldo += valorDoDeposito
return "Deposito realizado com sucesso. Valor atualizado: R$", c.Saldo
} else {
return "Valor do deposito é menor que zero. Valor da conta inalterado: R$", c.Saldo
}
}
func (c *ContaCorrente) Transferir(valorDaTransferencia float64, contaDestino *ContaCorrente) bool {
if valorDaTransferencia < c.Saldo && valorDaTransferencia > 0 {
c.Saldo -= valorDaTransferencia
contaDestino.Depositar(valorDaTransferencia)
return true
} else {
return false
}
}
package clientes
type Titular struct {
Nome string
CPF string
Profissao string
}