package models import "errors" // Account 银行账户(公开) type Account struct { ID string // 账户ID(公开) Owner string // 账户所有者(公开) balance float64 // 余额(私有,不能直接修改) } // NewAccount 创建账户 func NewAccount(id, owner string) *Account { return &Account{ ID: id, Owner: owner, balance: 0, } } // Deposit 存款(公开方法) func (a *Account) Deposit(amount float64) error { if !isValidAmount(amount) { return errors.New("金额必须大于0") } a.balance += amount return nil } // Withdraw 取款(公开方法) func (a *Account) Withdraw(amount float64) error { if !isValidAmount(amount) { return errors.New("金额必须大于0") } if amount > a.balance { return errors.New("余额不足") } a.balance -= amount return nil } // GetBalance 获取余额(公开方法) func (a *Account) GetBalance() float64 { return a.balance } // isValidAmount 验证金额(私有函数) func isValidAmount(amount float64) bool { return amount > 0 }