我正在從書中學習Lua,而我不是程序員。我試圖使用以下函數(從書中直接複製)將一個數據表保存到文件中,但該函數在嘗試從_G [resTable]中獲取字符串時出現錯誤。爲什麼? 。Lua:何時以及如何將表格寫入_G
function readFromFile(filename,resTable)
local hfile = io.open(filename)
if hfile == nil then return end
local results = {} -why is this table here?
local a = 1
for line in hfile:lines() do-- debug shows this loop doesn't run (no lines in hfile?)
_G[resTable[a]] = line
a = a + 1
end
end
function writeToFile(filename, resTable)
local hfile = io.open(filename, "w")
if hfile == nil then return end
local i
for i=1, #resTable do
hfile:write(_G[resTable[i]])--bad argument #1 to 'write' (string expected, got nil)
end
end
「將writeToFile」試圖獲取時的錯誤:寫入_G [resTable [I]在這裏列出的前兩個功能,我不明白他們爲什麼引用_G [resTable [I] ]因爲我沒有看到被寫入_G任何代碼
因此,這裏是執行的順序:
local aryTable = {
"Score",
"Lives",
"Health",
}
readFromFile("datafile", aryTable)
writeToFile("datafile", aryTable)
,我得到一個錯誤:
bad argument #1 to 'write' (string expected, got nil)
stack traceback:
[C]: in function 'write'
test.lua:45: in function 'writeToFile'
test.lua:82: in main chunk
你的數據文件包含什麼? – interjay
目前「datafile」什麼也沒有 – PHazer
...所以你期望'readFromFile'做什麼? – interjay