1. 程式人生 > >Lua語法小貼士(十二)loadstring和loadfile

Lua語法小貼士(十二)loadstring和loadfile

Lua裡面可以使用loadstring來載入一個字串,字串中包含了lua指令碼。

示例:

local str = "print('TestLoadingString') return 1234"
local func = loadstring(str)
print(func())

雖然字串裡沒有被function() end包圍,但loadstring載入進來的卻是一個函式。

這是一個沒有引數的函式,如果你需要新增引數,可以這樣:

local fmtStr = "local a='%d' print(a)"
local fmtFunc = loadstring(string.format(fmtStr, 9999))
fmtFunc()

或者還可以這樣:
local fmtParamStr = "return function(s,x) print(s..x) end"
local fmtParamFunc = loadstring(fmtParamStr)()
fmtParamFunc("test parameters", "666")

如果你需要在配置表裡自定義一些公式,loadstring可能比較好用。

Lua裡面還可以使用loadfile,可以載入一個lua檔案。

(個人感覺意義不大)

例如,我們在一個檔案TestLoading.lua裡新增:

print("TestFileLoading")

return true

那麼就可以在另一個lua檔案中呼叫它:
print(loadfile("TestLoading.lua")())