-- create class
Account = {balance = 0}
-- constructor
function Account:new (o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
-- method `deposit'
function Account:deposit (v)
self.balance = self.balance + v
end
-- method `withdraw'
function Account:withdraw (v)
if v > self.balance then error"insuficient funds" end
self.balance = self.balance - v
end
-- use example
a = Account:new()
print(a.balance) --> 0
a:deposit(1000.00)
a:withdraw(100.00)
print(a.balance) --> 900