package main import ( "errors" "fmt" ) type Bitcoin int func (b Bitcoin) String() string { return fmt.Sprintf("%d BTC", b) } type Wallet struct { balance Bitcoin } var InsufficientFundsError = errors.New("cannot withdraw, insufficient funds") func (w *Wallet) Deposit(amount Bitcoin) { fmt.Printf("address of balance in test is %v \n", &w.balance) w.balance += amount } func (w *Wallet) Balance() Bitcoin { fmt.Printf("address of balance in test is %v \n", &w.balance) return w.balance } func (w *Wallet) Withdraw(amount Bitcoin) error { if amount > w.balance { return InsufficientFundsError } w.balance -= amount return nil }