Cursus Raku / Addendum 🆕 / Genera et machinae textuales / Obiecta et classes / Exercises / Ratio argentaria
Solutio: Ratio argentaria
Ecce solutio possibilis huius exercitationis.
Codex
class Account {
has $!balance = 0;
method deposit($amount) {
$!balance += $amount;
}
method withdraw($amount) {
if $amount > $!balance {
say 'declined: insufficient funds';
}
else {
$!balance -= $amount;
}
}
method balance { $!balance }
}
my $account = Account.new;
$account.deposit(100);
$account.withdraw(30);
$account.withdraw(200);
say $account.balance;🦋 Inveni codicem fontem in archivo bank-account.raku.
Exitus
declined: insufficient funds
70Commentarii
has $!balance = 0attributum privatum declarat — cum twigil!nullum accessorem generatum omnino habet, itaque unicus modus rationem mutandi per methodos quas classis praebet est.method balancemundo externo modum eam legendi dat, sed nullum modum eam ponendi.Hoc consulto fit. Si
has $.balancescripsissemus, twigil.accessorem publicum adderet — solum legendum ex more, sed unum neglegensis rwin eo assignationem directam ut$account.balance = 1_000_000exponeret, quemlibet pecuniam movere sinens sinedepositvelwithdraw. Attributum privatum servare hoc per constructionem excludit: ratio solum secundum regulas proprias rationis mutari potest, ut probatio pecuniae insufficientis inwithdraw.Secunda retractio plus quam ratio poscit, itaque recusatur et ratio ad
70manet.