我想加载一些lua文件,然后将其粘贴到我的代码中间。
像:
do
local abc = 123
dofile "somecode.lua"
end
somecode.lua文件是:
if abc == 123
print("hello") end
我期望这些代码和文件的进展和输出:
do
local abc = 123
if abc == 123
print("hello") end
end
output: hello
但实际输出没有显示任何内容,因为本地'声明不会影响dofile函数。
我想知道如何将代码插入到上面工作的代码中间(我所期望的)。有什么功能适合我想要的吗?
答案 0 :(得分:1)
首先,您的代码存在一些语法问题。
somecode.lua
必须是
if abc == 123 then
print("hello")
end
请注意==
进行比较,并引入then
。
至于您的问题,hello
没有被打印,原因是abc
变量被声明为local
;因此,abc
语句中使用的if
变量不是指本地abc
,而是指默认全局abc
。要解决此问题,您必须在文件中初始化全局abc
,以便somecode.lua
也可以获取相同的变量。
这样的事情:
$ cat file1.lua
do
abc = 123
dofile "somecode.lua"
end
$ cat somecode.lua
if abc == 123 then
print("hello")
end
$ lua file1.lua
hello