Challenge 2 — Solution Task: Define a struct Account with field Balance (float64). Write a method (a *Account) Deposit(amount float64) using a pointer receiver that adds amount to Balance. Create an account, call Deposit twice with different amounts, and print Balance after each call to confirm it actually changes. package main import "fmt" type Account struct { Balance float64 } func (a *Account) Deposit(amount float64) { a.Balance += amount } func main() { account := Account{Balance: 100} account.Deposit(50) fmt.Println(account.Balance) account.Deposit(25.50) fmt.Println(account.Balance) } Expected output: 150 175.5 Notes: - Deposit MUST use a pointer receiver (*Account) — with a plain Account receiver, a.Balance += amount would only change a temporary copy, and account.Balance would still read 100 after both calls. - account.Deposit(50) works even though account itself is a plain Account, not a pointer — Go automatically takes its address behind the scenes when calling a pointer-receiver method this way. - Each call permanently updates the same underlying account, which is exactly why the second print shows 175.5, building on the first deposit rather than starting over from 100.