Lua - 使用 2 个分离脚本获取本地化变量或函数,而不使用 Debug 库

好的,所以我正在使用面向对象的环境,我可以制作几个可能与彼此连接或不连接的脚本,这完全取决于我是否想要它们连接,我想要从能够处理代码的不同对象中获取一个本地化的 local myfunc = function() end 函数,从此时开始我将称这些对象为“Scripts”,因为它们在游戏中被称为这样的名字,并且即使没有正式用作名称来指示这种事情,我也可以轻松地告诉人们我在说什么。

假设我有 Script 1,其中包含以下代码:

local myfunc = function() return true end

我有一个空白工作表的 Script 2,我想使它能够获取 myfunc,而不用触及 debug 库,将原始脚本作为模块脚本返回函数,这必须保留在 2 个分离脚本中。这就是所有的要求如果你想知道的话。我希望这能够像干净高效地做到,并且希望有人对如何像这样做有所了解!

点赞
用户734069
用户734069

本地变量的整个意义在于它是“局部的”; 其他人无法触及它。从另一个脚本访问数据的传统方法是模块或全局变量。你已经声明你不能/不会使用这两个选项。

你的要求将可能的解决方案集合减少到了零。

2018-07-28 18:50:36
用户3574628
用户3574628

Lua 中的代码块可以有 return 语句。如果要返回一个单独的函数:

return function()
  return true
end

如果要返回含有多个函数的表:

return {
  myFunc = function()
    return true
  end,
  myOtherFunc = function()
    return false
  end,
}
2018-07-28 18:55:32