国际访客建议访问 Primers 编程伙伴 国际版站点 > Lua 教程 > loadfile 以获得更好的体验。

# Lua 的 loadfile 函数

请查看 Lua 标准库函数列表 了解更多相关 API。
loadfile ([filename [, mode [, env]]])

!subtitle:说明

filename 文件中加载代码块,将其作为函数返回。

!subtitle:参数

  • filename - 要加载代码块的文件

  • chunkname - 代码块名称,用于错误信息和调试信息

  • mode - 可以是字符串 "b"(仅限二进制块)、"t"(仅限文本块)或 "bt"(二进制和文本块)。默认值为 "bt"

  • env - 生成的函数的上值,如果没有这个参数,则上值设为全局环境 _G 的值

!subtitle:返回值

  • 成功时返回编译代码块产生的函数

  • 失败时返回 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

# 推荐阅读

loadfile - Lua 5.4 Reference Manual

本文 更新于: 2025-11-27 09:38:12 创建于: 2025-11-27 09:38:12