调用程序时Lua加载变量~ 参数?

最近我开始玩计算机工艺(Minecraft 的一个 mod),你可以用 lua 编程计算机。

我想让它进入“water status”状态,然后加载“water”,然后将变量设置为“status”或其它任何单词/字符串,这样我就可以用它做任何事情了。我想你可以称之为参数吧?

os.run(环境,程序路径,参数)

我不明白环境是什么。prgmpath 是水,参数是状态吗? 我只是不确定如何从中提取这些参数。

所以,是的,我很困惑=/

我尽力解释了一下,谢谢, Jazza

在搜索了一下之后,我想我找到了答案。

在命令行中输入:

lua water arg1

然后在文件中输入:

derp = arg[2]

可用?

编辑:在潜伏一段时间后,我发现:

derp = ...
print(derp)

在文件中,以及:

file hi

它会打印 “hi”,所以我想那应该可以,但我似乎不能再添加任何了 D=

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

点赞
stackoverflow用户1208078
stackoverflow用户1208078

os.run是专门为该模组编写的os库的扩展。根据WIKI上的文档:

  • 环境是设置您在prgmpath运行的脚本状态的元表。
  • 参数是您要传递给在prgmpath脚本中定位的代码的任何内容。

因此,基本上,如果您设置了一些代码来执行在path/to/file.lua中执行特定操作,但它依赖于一些外部状态,您将在调用文件中设置该状态,并将环境(或其子集)作为表传递给os.run()中的第一参数来传递到file.lua中的代码。

参数应该是您想要传递给file.lua中调用的函数的参数表。所以如果在file.lua中您有...

function doSomething(arg1, arg2, arg3)
    ...
end

您可以通过创建表并像这样传递它来通过os.run传递arg1,arg2和arg3给doSomething。 ..

local args = {"arg1Val", {}, 1234}
os.run({}, '/path/to/file.lua', args)

然后,os.run将为file.lua中的doSomething()函数设置一个空环境,并将args中的3个值传递给该函数。

有意思吧?

2012-05-14 00:53:12