--弱引用
local a = {}
local b = { __mode = "k" --[[or v]]}
setmetatable(a, b)
--局部TableKey
local localKey = {}
localKey.name = "localKey"
a[localKey] = 1
local localKey = {}
localKey.name = "localKey"
a[localKey] = 2
localKey = {}
localKey.name = "localKey"
a[localKey] = 3
--全局TableKey
gobalKey = {}
gobalKey.name = "gobalKey"
a[gobalKey] = 4
gobalKey = {}
gobalKey.name = "gobalKey"
a[gobalKey] = 5
collectgarbage();
--在这个例子中 gobal的Key会被回收 至于local域内 localKey如果被重新赋值 则被覆盖的会被回收
--注意 如果是使用同名变量重新创建的TableKey则不会被回收
for k, v in pairs(a) do
print(k.name,v)
--[[
localKey 1
gobalKey 5
localKey 3
]]
end
Lua 弱引用
猜你喜欢
转载自blog.csdn.net/qq_29094161/article/details/82839292
今日推荐
周排行