Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除lua中的引用表?_Lua - Fatal编程技术网

如何删除lua中的引用表?

如何删除lua中的引用表?,lua,Lua,如何删除我引用的表以清除内存 例如 将b设置为nil只会删除引用,因此如何仅使用b删除它引用的表?您不这样做 如果有人引用了该表,那么他们就引用了该表。Lua不会给你单方面移除他人物品的权力 现在,您可以通过让某人间接使用表来尝试这样做: a = {{"a"}} b = a a[1][1] == "a" --How to access the table. b[1] = nil a[1][1] == "a" --Runtime failure, due to `nil` access. 通常情

如何删除我引用的表以清除内存

例如

将b设置为nil只会删除引用,因此如何仅使用b删除它引用的表?

您不这样做

如果有人引用了该表,那么他们就引用了该表。Lua不会给你单方面移除他人物品的权力

现在,您可以通过让某人间接使用表来尝试这样做:

a = {{"a"}}
b = a
a[1][1] == "a" --How to access the table.
b[1] = nil
a[1][1] == "a" --Runtime failure, due to `nil` access.
通常情况下,此类用途是名称而不是数字:

a = {name = {"a"}}
b = a
a.name[1] == "a" --How to access the table.
b.name = nil
a.name[1] == "a" --Runtime failure, due to `nil` access.
但不管怎样,这都不会阻止某人这样做:

a = {name = {"a"}}
b = a
local c = a.name --Local storage
a.name[1] == "a" --How to access the table.
b.name = nil
c[1] == "a" --Still works

Lua通常没有能力让您访问其他人的数据并使用他们的资料。

谢谢,这个替代示例非常有用!理论上,您可以手动搜索所有内容以查找引用并断开它们的连接。不过,这并没有实际用途。
a = {name = {"a"}}
b = a
local c = a.name --Local storage
a.name[1] == "a" --How to access the table.
b.name = nil
c[1] == "a" --Still works