'load' 在 Lua 做什么?

what do 'load' do in Lua?

我试图解决我在理解 Lua 脚本中的 load 函数时遇到的问题,但没有关于此命令的任何示例或指南。它在他自己的 Lua 网站 https://www.lua.org/manual/5.2/manual.html#pdf-load 中讲述了这个:

load (ld [, source [, mode [, env]]])

有人可以给我描述一下吗?

load 接受一个块,编译它,并且 returns 作为一个函数可以被调用来执行块。例如,下面将创建一个将 add 两个数字放在一起的函数:

local func, err = load("return function(a,b) return a+b end")
if func then
  local ok, add = pcall(func)
  if ok then
    print(add(2,3))
  else
    print("Execution error:", add)
  end
else
  print("Compilation error:", err)
end

这应该打印 5.