lua/tests/Smoke/account.lua
Petr Šabata ac515e8d0a RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN
with the following as its source:
https://src.fedoraproject.org/rpms/lua#3e03dd9b69dff7f2f87fff9e2f8cc2403fea046a
2020-10-15 18:42:25 +02:00

36 lines
700 B
Lua

-- account.lua
-- from PiL 1, Chapter 16
Account = {balance = 0}
function Account:new (o, name)
o = o or {name=name}
setmetatable(o, self)
self.__index = self
return o
end
function Account:deposit (v)
self.balance = self.balance + v
end
function Account:withdraw (v)
if v > self.balance then error("insufficient funds on account "..self.name) end
self.balance = self.balance - v
end
function Account:show (title)
print(title or "", self.name, self.balance)
end
a = Account:new(nil,"demo")
a:show("after creation")
a:deposit(1000.00)
a:show("after deposit")
a:withdraw(100.00)
a:show("after withdraw")
-- this would raise an error
b = Account:new(nil,"DEMO")
b:withdraw(100.00)