转载

Lua学习笔记--面向对象(三)

Lua通过Self指针实现面向对象.
对象其实是一个table,table不仅包括数据,还包括函数


account={balance=10}
function account.withdraw(self,v)
        self.balance=self.balance-v
end

local a=account
account=nil

a.withdraw(a,2)
print(a.balance)
       
self是每个函数的第一个参数,这样写起来很麻烦.
如果通过冒号(:)调用,则可以自动省略第一个参数的self
a:withdraw(2)
print(a.balance)


或者在定义的时候,直接构造对象.
account={
        balance=10,
        withdraw=       function(self,v)
                        self.balance=self.balance-v
                        end 
}
function account:deposit(v)
                self.balance=self.balance+v
end

account:withdraw(2)
print(account.balance)
account:deposit(2)
print(account.balance)

正文到此结束
Loading...