Lua提供了loadstring來(lái)加載一個(gè)字符串
1.加載function
local str = 'return 1+2'
local func = loadstring(str)
print(func())
輸出:3
這里func 等價(jià)于
local func = function()
return 1+2
end
2.加載table
local str = '{a=1,b=2}'
local tab = loadstring('return'..str)()
print(tab.a,tab.b)
輸出:1,2
3.配合 string.dump 使用
local func = function(a,b)
return a*b
end
local str = string.dump(func)
local result = loadstring(str)(2,3)
print(result)
輸出:6
4.拓展
local func = loadstring(string.format('return %d + %d',2,3))
print(func())
輸出:5
local str = 'return function(m,n) return m*n end'
local func = loadstring(str)()
print(func(3,2))
輸出:6