【发布时间】:2016-02-10 15:38:12
【问题描述】:
我是 ESP8266 和 lua 的新手,是否可以在 ESP8266 上处理多个文件?
我有 2 个文件,第一个名为 foo.lua
它包含以下代码:
function double(n)
return n * 2
end
而另一个文件new.lua 只是调用第一个文件如下:
require 'foo'
print(foo.double(5))
那么我可以在 esp8266 上使用这种技术吗?
我试过了,但是当我按下保存到 esp 按钮时,我得到了
和
还有另一个弹出消息
这些会打印在控制台上:
> file.remove("foo.lua");
> file.open("foo.lua","w+");
> w = file.writeline
> w([[function double(n)]]);
stdin:1: open a file first
> w([[ return n * 2]]);
stdin:1: open a file firstw([[end]]);
stdin:1: open a file firstw([[]]);
stdin:1: open a file firstw([[print (double(2))]]);
stdin:1: open a file firstfile.close();dofile("foo.lua");
cannot open foo.lua
即使我尝试使用发送到 ESP 按钮运行文件,它也可以工作,但不会被保存。
【问题讨论】:
-
包含
w = file.writeline的代码在哪里?因为这看起来要么不正确,要么file.open以某种方式失败(并且没有被抓住)。 -
我在任何代码文件中都没有 w = file.writeline。
-
那一定来自某个地方。大概它是您用来执行此操作的工具的一部分。无论如何,问题要么是该分配,要么是(我认为更有可能)
file.open调用失败。我无法推测为什么它会失败。如果没有对它的返回状态做某事,那么您可能无法做太多事情来找出可能失败的地方。直接询问熟悉该工具的人可能会更有帮助。