在Lua中将表中的函数作为本地函数导入。

我想要实现这个(将util表中的函数作为本地数值导入):

function blah ()
 local x = util.x
 local y = util.y
 ...
end

而不需要显式地引用每个函数,例如:

function blah()
  for name,f in util do
    ???
  end
end

不幸的是,我无法设置本地表来实现这一点,就像可以设置_G['function_name_as_string']一样。有什么想法吗?

原文链接 https://stackoverflow.com/questions/1265660

点赞
stackoverflow用户26051
stackoverflow用户26051

据我所知,你不能通过名称设置局部变量。你必须明确地进行设置。

顺便说一下,没有类似 _G_L 表格的原因是由于词法作用域。可能在多个作用域中具有相同的局部变量名称,但它们不是相同的变量。你需要有一种 setlocal("foo", xxx) 这样的方式,但 Lua 没有这个功能。

2009-08-12 12:11:46
stackoverflow用户68204
stackoverflow用户68204

我记得我在 metalua 中看到了一个例子,它可以使得这种语法成为可能。它操作抽象语法树,从而可以将新关键字和语法引入语言中。

2009-08-12 20:04:54