5

昨天我在玩 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
]]
4

1 回答 1

0

请参阅此相关的 SO 问题和答案。空用户数据对于检测 GC 何时回收对象很有用。Lua 5.2 中的零大小表可以扮演这个角色。

于 2014-10-02T01:36:48.197 回答