作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
让我们看看下面的代码。
do
local a = {1,2,3}
function a:doSth()
self = nil
end
a:doSth()
if a then
print("Still has a...")
end
end
a
仍然存在。为什么?
a = nil
可以回收哪个表的内存
a
持有。
a
并像
delete
一样释放内存在 C++ 中?
最佳答案
function a:doSth()
self = nil
end
function a.doSth(self)
self = nil
end
{1,2,3}
,一个是通过
local a
,另一个是通过
self
函数内部。
nil
删除其中一个引用不会更改对表的另一个引用。
function a:doSth()
a = nil
end
a
释放引用,还有来自
self
的引用但是当函数结束时,它会自动超出范围。函数调用后,
{1,2,3}
假设没有其他内容引用该表,将在下一个循环中由 gc 收集。
关于lua - 如何在Lua中删除表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28061733/
我是一名优秀的程序员,十分优秀!