lua中table引用問題

2021-07-24 08:27:03 字數 315 閱讀 3397

loacl a =

loacl b = a

a = nil

雖然lua table的賦值是引用,修改a或b會同時修改。

但是如果對a=nil,此時b 還是指向原來的 ,本質上就是a和b指向同一塊記憶體位址,a=nil只是將指標賦空,b還持有對該記憶體的引用

在物件導向的語言中,我們經常將乙個物件的指標或引用存到另乙個物件中以方便使用。

但是lua中,a如果被清空之後,此時的b還是有資料的,相當於c++的野指標。

使用時要考慮清楚這種情況,不要把b還當做正常資料使用,複雜的模組之前不用這種引用方式管理,做到隨用隨取。

LUA中table的排序問題

畢業了,正式工作了,隨便寫寫。目前在實習,接觸的是u3d遊戲開發,設計到語言有erlang,c lua。最近在做揹包的排序的時候遇到的乙個小問題就貼出來了。檢視官方文件 第乙個引數是乙個table,第二個引數是外部函式,如下 table.sort showlist,sortfunc local fu...

lua使用table問題

今天在開發的時候,自己建立了乙個table。建立 如下 self.skill value table self.skill table for i 1,8 do self.skill table i self.skill value table end這樣每次去改變self.skill table ...

Lua教程(十三) 弱引用table

lua採用了基於垃圾收集的記憶體管理機制,因此對於程式設計師來說,在很多時候記憶體問題都將不再困擾他們。然而任何垃圾收集器都不是萬能的,在有些特殊情況下,垃圾收集器是無法準確的判斷是否應該將當前對程式設計客棧象清理。這樣就極有可能導致很多垃圾物件無法被釋放。為了解決這一問題,就需要lua的開發者予以...