1. 程式人生 > >lua中物件的弱引用

lua中物件的弱引用

幾次編寫lua時。總是有同事遇到A中物件已經釋放了。但B物件中A物件的值不是為空的。
Lua的gc和Java的類似。只有當物件沒有被引用時候才會釋放這塊記憶體。要想實現A釋放了B中A的值也釋放了這時候需要用到弱引用。

setmetatable(t,{__mode="k"});

__mode 的值可以為"k","v","kv"

 



~ ~第一段程式碼中可以看到記憶體中是有一個[key]儲存了一個table。雖然b=nil了但是t中還是存在了這一個條目。
~ ~第二段程式碼中可以看到[key]不在擁有table了。