什么是newproxy以及它如何有用?

时间:2014-10-01 23:36:39

标签: lua metatable

昨天我和Lua搞混乱,偶然发现了'newproxy'功能。

http://wiki.roblox.com/index.php?title=Function_dump/Basic_functions#newproxy

我有点理解它,但我不确定它是如何有用的。我知道它创建了一个空白的userdata对象,附带了元表(如果参数为真)。

newproxy如何有用?这是我在搞乱它时所做的一个例子:

local proxy = newproxy(true)
local metatable = getmetatable(proxy)

metatable.__index = function(array, key) print(array, key) end

local y = proxy[100]

--[[
    OUTPUT:
        userdata: 0x443ad4b4 100
]]

1 个答案:

答案 0 :(得分:0)

请参阅this related SO question并回答。空的userdata对于检测GC回收对象的时间非常有用。该角色可以通过Lua 5.2中的零大小的表来播放。