当前位置: 首页 > 知识库问答 >
问题:

file:↑()错误:"错误参数#1到'写入'(字符串预期,得到零)"

曹焱
2023-03-14
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,get nil)),声称当我直接在函数中输入字符串时,它没有字符串,这让我非常恼火。然而,这种错误并非总是发生——其他时候,它工作得很完美,似乎没有任何原因。其次,当我在上面说的log:write()语句中输入if时,它现在认为错误与if语句有关,例如:

if press ~= 0 then --claims error is here
  log:write("\nCorrect combination: "..press.."\n")
end

在我的程序中,我有多个重复的代码示例,这些代码具有不同的变量/值,我已经多次验证它们都是相同的。

这可能是什么错误,为什么?

共有1个答案

东郭兴学
2023-03-14

虽然在问题示例中不可复制,但在以类似方式编写脚本的情况下,日志文本都可能保持nil。这是因为它们的值只在程序的选定分支中给出。

尝试预先为它们分配空值,以避免连接或io.writenil问题:

local log = io.open("log.txt","a")
local logText = ""
local press = 0

-- Rest of the logic.
 类似资料:
  • 以下是代码: 我不是一个有经验的“编剧”,所以我真的不知道如何解决这个问题。

  • 我正在使用这段代码生成objects,但有时我会遇到这个错误(错误参数#-1到'addBody'(需要代理,得到零))知道为什么吗?

  • 问题内容: 我设置了以下for循环以接受5个测试分数。我希望循环提示用户输入5个不同的分数。现在,我可以通过输入“请输入您的下一个测试分数”来完成此操作,但是我希望每个输入的分数提示都提供其相关编号。 因此,对于第一个输入,我希望显示“请输入测试1的分数”,然后对于第二个分数,显示“请输入测试2的分数”。当我尝试运行此循环时,出现以下错误: 这是代码 问题答案: 一种简单(正确的方法)来编写所需内

  • 这是一个Lua脚本,用于Corona SDK中的一个游戏。一开始(旧代码)效率很低,我不得不手动创建每道数学题,在其他人的帮助下(新代码),所以我得到了答案。 在控制台中,我现在看到了这个错误:

  • 我不知道我做错了什么。。。我得到了球员的错误。draw()函数。它所说的不好的争论是在爱情中。图样矩形()方法。这意味着v.x是一个糟糕的论点。但它应该起作用。v.x和v.y都应该工作。因为它访问表或数组中元素的字段,对吗?有人能告诉我我做错了什么,以及如何解决这个问题吗?非常感谢!这是我的代码:

  • 我有一个问题在这里我不知道如何解决这个问题,本尝试任何我知道解决这个仍然没有解决方案,请帮助 我有2个模块 主要的卢阿: 外部模块dog.lua: 堆栈回溯: 现在还在想在这里做什么。这是唯一阻碍我项目的事情。请帮忙,谢谢:)