gpt4 book ai didi

lua - 从纯Lua创建新的空用户数据

转载 作者:行者123 更新时间:2023-12-04 13:50:22 24 4
gpt4 key购买 nike

我想我在Lua的某个地方看到了可以返回新用户数据的 native 函数。是否存在?是否可以从普通的Lua脚本创建自定义用户数据?

最佳答案

您可能正在考虑newproxy
来自:http://lua-users.org/wiki/HiddenFeatures

newproxy is an unsupported and undocumented function in the Lua base library. From Lua code, the setmetatable function may only be used on objects of table type. The newproxy function circumvents that limitation by creating a zero-size userdata and setting either a new, empty metatable on it or using the metatable of another newproxy instance. We are then free to modify the metatable from Lua. This is the only way to create a proxy object from Lua which honors certain metamethods, such as __len.



对于 __gc元方法,它也很有用,因为当 newproxy实例变为免费时,它会获得回调。

该功能在Lua 5.1中存在,但在5.2中已删除。在Lua 5.2中,可以在大小为零的表上设置 __gc元方法,因此 newproxy的主要动力就消失了。

关于lua - 从纯Lua创建新的空用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23592388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com