我正在尝试从我存储在计算机上的文件中读取我的Lua程序。我正在使用此代码:
function readFile(file)
local file = io.open(file,"rb")
local content = file:read("*all")
file:close()
return content
当我尝试运行它时,我收到此错误:
lua: io.lua:3: attempt to index local 'file' (a nil value)
stack traceback:
io.lua:3: in main chunk
[C]: ?
exit code: 1
我找到了原始问题的解决方案,但是当我运行脚本时,它会报告变量'constant'为零。
输入:
function readFile(filename)
local file = io.open(filename,"rb")
local content = file:read("*a")
file:close()
return content
end
readFile("test.txt")
print(content)
输出:
lua -e "io.stdout:setvbuf 'no'" "io.lua"
nil
Exit code: 0
答案 0 :(得分:1)
使用与函数参数不同的本地名称。
function readFile(filename)
local file = io.open(filename, “rb”)
<强>更新强>
编辑后,仍然存在问题:
readFile("test.txt")
print(content)
您正在打印全局变量content
,即nil
,您想要的是:
print(readFile("test.txt"))
或:
local content = readFile("test.txt")
print(content)
答案 1 :(得分:0)
在io.open
中包裹assert
:
local file = assert( io.open(file,"rb") )
这将显示底层操作系统生成的错误(如果有)。