Lua提供了loadstring来加载一个字符串
1.加载function
local str = 'return 1+2'
local func = loadstring(str)
print(func())
输出:3
这里func 等价于
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