【问题标题】:Is there to way to run code from a variable in Lua有没有办法从 Lua 中的变量运行代码
【发布时间】:2020-04-23 16:55:00
【问题描述】:

所以,我有一个非常有趣的位置,我将一整套代码加载到一个变量中,我非常想运行这段代码,因为它定义了稍后在代码中的关键变量和函数。有没有办法让我这样做?我没有尝试过任何事情,因为坦率地说,我不知道在这种情况下我必须做什么。

主程序:(代码在变量加载后。)

while true do
trick.setscr(1,2,"Success!")
end

变量加载代码

--Graphics 1.0
local card = component.proxy(component.list("gpu")())
_G.video[80]
table.insert(system, 0)
function trick.print(y, str)
card.fill(x, y, 1, y, str)

end
function trick.setscr(x,y,str)
card.fill(x, y, x, y, str)
end
function trick.clear()
card.fill(1, 1, 50, 16, " ")
system[6] = 0
end

【问题讨论】:

  • 我还没有检查过,但我很确定这会让我看起来非常愚蠢。我之前忽略了 load 命令,因为我认为仅基于语法不会有帮助,但我现在要更仔细地研究一下。
  • @Piglet 所以我决定在 while true 之前添加行 load(system[4]) 以尝试让它运行函数的定义但它没有帮助(同样的旧错误但是这个下一行)。多亏了你,有些东西告诉我我走在正确的轨道上,但我不确定我错过了什么。
  • @Missingno50 - same old error but this time a line down 错误信息是什么?
  • 不妨告诉你,但基本上它只是吐出“尝试调用字段'setscr'(一个零值)”。完全没有帮助。

标签: lua opencomputers


【解决方案1】:

是的,我很笨。我所要做的就是实现一个使用 load 命令的函数,就像这样。

run = load(system[4])
run()

这会毫无问题地添加功能。

【讨论】:

  • 这就是他们在手册中写“如果没有语法错误,将编译后的块作为函数返回”的原因,当然必须调用该函数才能产生任何效果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多