#Lua 的 loadfile 函数
loadfile ([filename [, mode [, env]]])
说明
从 filename
文件中加载代码块,将其作为函数返回。
参数
filename
- 要加载代码块的文件chunkname
- 代码块名称,用于错误信息和调试信息mode
- 可以是字符串"b"
(仅限二进制块)、"t"
(仅限文本块)或"bt"
(二进制和文本块)。默认值为"bt"
env
- 生成的函数的上值,如果没有这个参数,则上值设为全局环境_G
的值
返回值
- 成功时返回编译代码块产生的函数
- 失败时返回
nil
和错误信息
#示例
-- 写文件
local file = io.open("/tmp/demo.lua", "wb")
file:write([[
print('我是文件')
return x + y
]])
file:close()
-- 上值
local env = {
print = print,
x = 10,
y = 20
}
-- 加载代码块
local func, message = loadfile("/tmp/demo.lua", "bt", env)
if func == nil then
error(message)
else
-- 调用代码块
local result = func()
print(result)
end