local log = io.open("log.txt","a")
local logText
for i=1,8 do --in case you claim this is pointless, it's here because it might affect the outcome and it has a use in other places of my program
if a == 1 then --throwaway variable for this example
press = 4; logText = "A = 1."
else
press = 8; logText = "No other rules apply."
end
if i == 8 then
log:write(logText)
log:write("\nCorrect combination: "..press.."\n") --claims error is here
log:close()
end
end
Второй log:write()
выдает ошибку (bad argument #1 to 'write' (string expected, got nil)
), утверждая, что у него нет строки, когда я передаю ее непосредственно в функцию, и это меня раздражает. Тем не менее, ошибка не возникает все время - в других случаях она работает отлично, по-видимому, без причины. Во-вторых, когда я вставляю в оператор if
выше сказанное log:write()
, теперь он думает, что ошибка находится в строке с оператором if
, например:
if press ~= 0 then --claims error is here
log:write("\nCorrect combination: "..press.."\n")
end
У меня есть несколько дубликатов этогопример кода в моей программе с различными переменными / значениями, и я убедился, что они все одинаковые несколько раз.
Какую возможную ошибку это может вызвать и почему?