lua模組載入

2021-08-27 19:16:18 字數 633 閱讀 5478

module(mod name, [package.seeall] )函式

通過package.seeall選項可令舊全域性環境可見。

require (mod name) 載入指定的模組。

先檢測package.loaded表中是否存在modname,存在則直接返回當中的值,沒有則通重載入器載入modname。

package.path:用於require lua loader的搜尋路徑

可以通過修改lua_path變數(luaconf.h)修改此值

require只認檔名,不認路徑名。要加入路徑名資訊的話,就要寫成父模組子模組的形式。

如果載入不同路徑下的同名模組,先 package.loaded["mod name"] = nil,然後再載入。

lua提供require函式來載入執行庫, dofile完成類似的功能:

require的路徑是乙個模式列表,

例如,路徑如下: ?;?.lua;c:\windows\?;/usr/local/lua/?/?.lua

為了確定路徑,lua首先檢查全域性變數lua_path是否為乙個字串,如果是則認為這個串就是路徑;否則require檢查環境變數lua_path的值,如果兩個都失敗require使用固定的路徑(典型的"?;?.lua")

Lua動態載入模組

function reload modulename package.loaded modulename nil require modulename end 使用以上 即可重新載入乙個檔案。這樣修改完lua 後,可以不用重啟程式立刻生效。模組a a function a.test1 print 1...

lua的模組載入require

載入指定的模組。首先函式會在 package.loaded 這個表中檢視是否已經載入 了 modname 這個模組。如果是,那麼 require 會返回儲存在 package.loaded modname 的值。否則它將嘗 試去查詢乙個載入該模組的載入器。require 是由 package.sea...

Lua模組的載入與記憶體釋放

今天早上聽說一件事情讓我覺得很詭異的事情 公司線上的一款遊戲,載入乙份配置資源後,記憶體漲了幾十m,然後記憶體再也下不來了。因為好奇,所以要來了最大的乙個配置檔案 4.5m,去除空格與換行後的大小 進行測試。最終發現,記憶體其實是可以被釋放的,不過需要注意以下的規則。同時,為了證明luac 與 lu...