1 Star 2 Fork 0

Eden/Notes

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Lua 对象默认属性.md 592 Bytes
一键复制 编辑 原始数据 按行查看 历史

Lua 对象默认属性

  • 属性数量少,用第一种方式实现
  • 属性数量多,用第二种方式实现

方式一

local defualts = {}
setmetatable( defaults , { __mode = "k" } )
local mt = { __index = function(t) return deaults[t] end}
function setDefault( t , d )
defaults[t] = d
setmetatable( t , mt )
end

方式二

local metas = {}
setmetatable( metas , { __mode = "v" } )
function setDefault( t , d )
local mt = metas[d]
if mt == nil then
    mt = { __index = function() return d end}
    metas[d] = mt    -- 备忘录
end
setmetatable(t,mt)
end
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/eden2f/notes.git
git@gitee.com:eden2f/notes.git
eden2f
notes
Notes
master

搜索帮助

Cb406eda 1850385 E526c682 1850385