2018年8月10日 星期五

package.loaded

該如何判斷一個Lua檔案是否下在完成
可以檢查看看 package.loaded 這張表中是否有數值

比如
-- ModuleA.lua
...
...
...

-- Main.lua
require("ModuleA")
for k,v in pairs(package.loaded) do
print(k,v)
end

-- 輸出結果
string table: 00B193B0
debug table: 00B19748
package table: 00B17628
_G table: 00B11A60
src/view/ModuleD table: 00E60118
ModuleA table: 00E60140
io table: 00B19608
os table: 00B19770
table table: 00B174C0
math table: 00B196A8
src/view/ModuleC table: 00E60208
coroutine table: 00B17380
ModuleB table: 00B19B08

可以明顯知道模組已經有下載過了
之後如果我們在別的地方寫 require 
返回的都是同一個值

沒有留言:

張貼留言

Lua 5.1 __gc

__gc lua 5.2 開始有 __gc 這個元函數可以知道什麼時候被釋放掉 當 table 被回收時會呼叫這個函數 我們可以在這個函數中處理資源釋放等操作 不過 lua 5.1 中對於 table 并不支援,我們先看一下在 lua 5.2 中 這個 __gc 怎...