Lua基础(一) loadstring

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

ps :
1.loadstring在从lua5.3开始去掉了,使用load替代
2.如果传入的代码块有语法错误则返回nil
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容