Boa tarde!
Meu programa não deu nenhum erro, porém está apresentando o erro abaixo. Alguem consegue me dizer onde errei?
C:\Users\victorb3125_00\go\src\github.com\victor\banco> go run main.go
# command-line-arguments
.\main.go:20:24: too many arguments in call to contaDaJoana.Decisao
have (number)
want (
.\main.go:22:23: too many arguments in call to contaDoGean.Decisao
have (number)
want ()
MAIN.GO
package main
import (
"banco/clientes"
"banco/contas"
"fmt"
)
func main() {
contaDaJoana := contas.ContaCorrente{NumeroConta: 1234}
contaDoGean := contas.ContaCorrente{Titular: clientes.Titular{Nome: "Gean"}, NumeroConta: 5678}
var escolha int
fmt.Println("Bem vindo ao Banco X. Digite sua conta")
fmt.Scan(&escolha)
if escolha == contaDaJoana.NumeroConta{
contaDaJoana.Decisao(escolha)
}else if escolha == contaDoGean.NumeroConta{
contaDoGean.Decisao(escolha)
} else {
fmt.Println("Número inválido")
}
}
CONTACORRENTE.GO
package contas
import (
"banco/clientes"
"fmt"
"os"
)
type ContaCorrente struct {
Titular clientes.Titular
NumeroAgencia, NumeroConta int
saldo float64
}
func (c *ContaCorrente) Sacar() string {
var saca float64
fmt.Println("Quanto deseja sacar?")
fmt.Scan(&saca)
podeSacar := saca > 0 && saca <= c.saldo
if podeSacar {
c.saldo -= saca
return "Saque realizado com sucesso \n"
} else {
return "saldo insuficiente \n"
}
}
func (c *ContaCorrente) Depositar() string {
var deposita float64
fmt.Println("Quanto deseja depositar?")
fmt.Scan(&deposita)
if deposita > 0 {
c.saldo += deposita
return "Depósito efetuado com sucesso \n"
} else {
return "Valor deve ser maior de zero \n"
}
}
func (c *ContaCorrente) Extrato() (string, float64) {
return "saldo atual:", c.saldo
}
func (c *ContaCorrente) Transferir(contaDestino *ContaCorrente) (float64, string) {
var valorDaTransferencia float64
fmt.Println("Digite o valor da Transferência para o " + contaDestino.Titular.Nome)
fmt.Scan(&valorDaTransferencia)
if valorDaTransferencia < c.saldo {
c.saldo -= valorDaTransferencia
contaDestino.saldo += valorDaTransferencia
return c.saldo, "Transferencia realizada com sucesso \n"
} else {
return c.saldo, "saldo insuficiente"
}
}
func (c *ContaCorrente) Decisao(escolha int) {
for {
var contaDestino *ContaCorrente
if escolha == c.NumeroConta {
for {
fmt.Println("Bem vindo " + c.Titular.Nome + ". Escolha uma opção abaixo:")
escolha := MenuInicial()
if escolha == 5 {
break
}
switch escolha {
case 1:
fmt.Println(c.Depositar())
case 2:
fmt.Println(c.Sacar())
case 3:
fmt.Println(c.Extrato())
case 4:
fmt.Print(c.Transferir(contaDestino))
case 5:
break
case 6:
fmt.Println("Obrigado por vir ao Banco X, volte sempre.")
os.Exit(0)
default:
fmt.Println("Não conheço esse comando.")
os.Exit(-1)
}
}
} else {
fmt.Println("Digite novamente o numero da conta")
}
}
}
func MenuInicial() int {
var escolha int
fmt.Println("1 - Deposito")
fmt.Println("2 - Saque")
fmt.Println("3 - Extrato")
fmt.Println("4 - Trasnferir")
fmt.Println("5 - Voltar")
fmt.Println("6 - Sair")
fmt.Scan(&escolha)
return escolha
}
CLIENTE.GO
IGUAL AO CURSO.