<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">今天成功研究出一套我自己感觉很nice的 lua 类机制,小巧而强大, 类的继承关系 以浅拷贝所有成员字段来实现、对象实例以原表方式与类相关联,这就贴上代码:</span>
-- @author:
-- Carl Zhong
-- @desc:
-- lua 面向对象解决方案, 类机制实现
-- 类实现不会用到 metatable
--class id generator
local s_nClassID = 0
local function _genClassID()
s_nClassID = s_nClassID + 1
return s_nClassID
end
--metatable for subClass
local s_clsmt = {}
s_clsmt.__newindex = function(t, key, value)
assert(type(value) == 'function')
rawset(t, key, value)
end
s_clsmt.__index = function(t, k) assert(false) end
s_clsmt.__add = function(t1, t2) assert(false) end
s_clsmt.__sub = function(t1, t2) assert(false) end
s_clsmt.__mul = function(t1, t2) assert(false) end
s_clsmt.