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

Lua错误:应为字符串,得到nil--参数错误#2

顾乐家
2023-03-14

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

在控制台中,我现在看到了这个错误:

第93行:本地问题文本=display.new文本

game.lua:93:错误的参数#2到'newText'(字符串预期,得到零)

--mathQuestions.lua (Old code)
local M = {}
M["times"] = {
    {
        question="6 x 5",  --The question.
        answers={"30", "11", "29", "20"},  --Array of possible answers.
        answer=1   --Which one from the above array is the correct answer.
    },
}
return M

--mathQuestions.lua (New code)
local rnd = function (x) return math.random(1,x) end
M.times = {}
local numQuestions = 10 -- how many questions in your database
for i=1,numQuestions do
    local obj =
    {
        left=math.random(1,10),
        right=math.random(1,10),
        answers={rnd(100), rnd(100), rnd(100), rnd(100)},
        answerIndex=rnd(4) -- will override answer[answerIndex] later
    }
    obj.answer = obj.left * obj.right
    obj.answers[obj.answerIndex] = obj.answer
    M.times[i] = obj
end

有没有关于问题是什么以及如何解决的想法?谢谢


共有1个答案

祖迪
2023-03-14

第93行有“问题[currentQuestion].question”:问题表中的每个项目都是一个带有字段“left”、“right”等的表,但没有您在第93行中访问的字段“question”。在定义问题的循环中,在“obj.answer=”之前添加一行:

obj.question = string.format("%s x %s", left, right)
 类似资料:
  • 以下是代码: 我不是一个有经验的“编剧”,所以我真的不知道如何解决这个问题。

  • 第二个抛出了一个错误(),声称当我直接在函数中输入字符串时,它没有字符串,这让我非常恼火。然而,这种错误并非总是发生——其他时候,它工作得很完美,似乎没有任何原因。其次,当我在上面说的语句中输入时,它现在认为错误与语句有关,例如: 在我的程序中,我有多个重复的代码示例,这些代码具有不同的变量/值,我已经多次验证它们都是相同的。 这可能是什么错误,为什么?

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

  • 我想对我的数组使用。 提前致谢

  • 警告:mysqli_fetch_array()要求参数1为mysqli_结果,字符串为给定值 这是我的密码谁能告诉我怎么了?

  • 问题内容: 我已经声明了公共静态数组的名称和ID: 但是说: 我不知道怎么了 是我声明变量的方式还是写的方法? 问题答案: 您在静态String数组和传递给该方法的本地String变量之间发生冲突。 最好的解决方案是使用不同的名称。这将使代码更容易理解。 如果仍然坚持使用相同的名称,则可以通过使用类名称访问静态数组来解决名称冲突: 这同样适用于您的int数组和int变量。