【发布时间】:2014-11-26 22:36:33
【问题描述】:
我昨天在玩 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
]]
【问题讨论】:
-
比表格稍微轻一些,并且支持一些在表格被再次删除之前不支持的元方法。
-
newproxy在 Lua 5.1 中被弃用并在 Lua 5.2 中被移除。