MED Update Balance
Assignment
alice := customer{id: 1, balance: 100.0}
deposit := transaction{customerID: 1, amount: 50, transactionType: transactionDeposit}
updateBalance(&alice, deposit)
// id: 1 balance: 150Solution
package main
import (
"errors"
)
type customer struct {
id int
balance float64
}
type transactionType string
const (
transactionDeposit transactionType = "deposit"
transactionWithdrawal transactionType = "withdrawal"
)
type transaction struct {
customerID int
amount float64
transactionType transactionType
}
// Don't touch above this line
func updateBalance(c *customer, t transaction) error{
if t.transactionType == "deposit"{
c.balance += t.amount
return nil
}
if t.transactionType == "withdrawal"{
if t.amount <= c.balance{
c.balance-=t.amount
return nil
}else if t.amount > c.balance{
return errors.New("insufficient funds")
}
}
return errors.New("unknown transaction type")
}