1.原理
主要实现语法
主要通过 lua 中的元表来实现,元表来实现不同的表之间的操作
2.实现
local _M = {}
-- 这里主要模拟类
function _M:new(name)
self.__index = self
self.name = self.name or name
return setmetatable({}, self)
end
function _M:print()
print("Name is ", self.name)
end
local a = _M:new("satellite")
a:print()
--=======================分割线=========================
-- 这里主要实现了继承,通过设置元表为另一个表实现表之间的操作
local A = {}
function A:new(name, age)
local m = _M:new(name)
self.age = self.age or age
setmetatable(self, {__index = m})
return self
end
function A:getAge()
print(self.name, " is ", self.age)
end
a = A:new("Satellite", 11)
a:getAge()
3.setmatatable() getmatatable()
getmetatable() 用法 以及 setmetatable() 用法