今天使用cjson操作发现lua的nil操作并没有删除内存。
具体代码如下:
rst_table["ws"][1] = nil
local cut_rsh_result = cjson.encode(rst_table)
print (cut_rsh_result)
我们队其中某项赋值为nil
cjson转换时并没有删除 而是显示
[null,{}] 这样的东西。
验证数组时也发现
local a = {1,2,3,4}
a[1]=nil
print (a[1])
nil
此时 a[1] 没有变成 2
print(a[2])
2
由此可见nil只是将内存至 0 并没有释放。只有在对象结束生命周期 lua垃圾机制才会回收。
小记一下!