Lua語法小貼士(十二)loadstring和loadfile
阿新 • • 發佈:2019-01-22
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")())