从另一个Lua文件加载时,我如何向Lua文件传递参数?

15

我需要帮助解析lua文件的命令行。我正在执行一个lua文件,它包含一个命令“dofile(第二个.lua文件)”,但是我想通过第一个lua文件向第二个lua文件传递一些参数。

例如- a.lua 包含 dofile("b.lua"),现在我必须通过 a.lua 传递一些参数到 b.lua 中,该怎么做。

2个回答

29

尝试这个。在文件 `a.lua' 中:

assert(loadfile("b.lua"))(10,20,30)

在文件 b.lua 中:

local a,b,c=...

或者

local arg={...}

因为参数传递是作为变长参数进行的,所以使用了...


当我使用dofile(b.lua)(10)运行它时,我遇到了以下错误:“unexpected symbol near '.'”,而我的b.lua文件如下:local a=. - Invictus
2
@Invictus,就像发布的那样,它是三个点 ...。这是Lua语言中用于可变参数的语法。试一下吧。 - lhf

1
一种简单的方法:

命令和输出:

C:\LUAWORK\Estudio-Tut>lua -e "a=2 b=3 c=4 dofile(‘argu.lua’)"

2 3 4

4 6 8

文件1,argu.lua:

print (a , b ,c)
a=2*a
b=2*b
c=2*c
dofile ( ‘otro.lua’)

文件2,otro.lua:

print (a ,b, c)

使用 -e "……." 可以在调用任何模块链时设置全局变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接