错误的参数#2为“可设置”(预期为零或表)?

摩尔

我目前正在使用我正在创建的电晕应用程序来坚持这一点。

我的文件结构如下:App->类-> Objects-> Ships

在App文件夹中是main.lua,menu.lua,level.lua和Class.lua。在“类”文件夹中,存在Object.lua。在Objects中,ship.lua,最后在Ships中,是我不同的船,即玩家和敌人。

我遵循了本教程,我的代码几乎与他的代码完全相同(酒吧球员和敌人的职业),但是在Class.lua中仍然收到此错误。

“'setetatable'的错误参数#2(预期为零或表)”

我收到错误的代码是

function Class(Super)
  Super = Super or Base
  local prototype = setmetatable({}, Super) -- receive error here
  prototype.class = prototype
  prototype.super = Super
  prototype.__index = prototype
  return prototype
end

Base = Class()

function Base:new(...)
  local instance = setmetatable({}, self)
  instance:initialize(...)
  return instance
end

function Base:initialize() end

function Base:get()
  local Instances = self.Instances
  if (not Instances[1]) then local obj = self:new() end
  return table.remove(Instances, 1)
end

function Base:dispose()
  table.insert(self.Instances, self)
end

我尝试过更改类并将“ setmetatable({},Super)”更改为“ setmetatable(Super,self)”,将所有类都放在一个文件中,我已经阅读了lua文档,要求输入Class.lua mai,菜单和level.lua等,没有任何效果。

任何帮助将不胜感激。

谢谢

伊坦·赖斯纳
function Class(Super)
  Super = Super or Base
  local prototype = setmetatable({}, Super) -- receive error here
  prototype.class = prototype
  prototype.super = Super
  prototype.__index = prototype
  return prototype
end

Base = Class()

按照上面的代码执行。

您先声明一个函数Class,然后调用它(并将其返回值分配给Base)。

ClassBase = Class()行开始逐步执行

function Class(Super)

该函数接受一个名为 Super

Super = Super or Base

您允许Super使用默认值零/不传递参数Base该调用Base = Class()未传递值,因此该行Super = Super or Base具有Superasnil,因此求值为,Super = nil or Base但是全局Base也为nil,因为尚未将其分配给您,因此您得到了Super = nil

local prototype = setmetatable({}, Super)

然后Super,正如我们刚刚看到的那样,此行尝试仅使用它(从之前的行分配),nil因此是您的错误。

从教程,你错过了(或者至少在您发布的片断错过)该位是至关重要 local Base线上面Class函数定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Elisp中调试“错误设置为零”

来自分类Dev

Larave错误:array_merge():预期参数2为数组,字符串为给定

来自分类Dev

printf和getenv错误-预期为char *,但参数2为int类型

来自分类Dev

路由设置的参数数量错误(2为0)

来自分类Dev

Lua:预期指数,为零

来自分类Dev

发生 WebSocket 错误:参数数量错误(给定 2,预期为 1)

来自分类Dev

参数为零

来自分类Dev

内部索引数量错误,预期为2

来自分类Dev

Mybatis“desc 表名”不起作用。获取错误为“设置参数时发生错误”

来自分类Dev

Kotlin错误:预期类型为android.widget.CompoundButton!的2个参数,kotlin.Boolean

来自分类Dev

Jekyll:参数数量错误(给定2个,预期为1个)(ArgumentError)

来自分类Dev

Rails:参数数量错误(给定2个,预期为1个)MongoID

来自分类Dev

Kotlin错误:预期类型为android.widget.CompoundButton!的2个参数,kotlin.Boolean

来自分类Dev

调用特定用户来创建通知?(错误数量的参数(给定 3,预期为 2))

来自分类Dev

控制器规范中的参数数量错误(给定 2,预期为 0)

来自分类Dev

ArgumentError:Update_Attribute 方法的参数数量错误(给定 1,预期为 2)

来自分类Dev

BASIC错误:预期为'='

来自分类Dev

错误:预期为“)”?

来自分类Dev

C ++“错误预期为')'”

来自分类Dev

R中的while循环给出“参数长度为零”错误

来自分类Dev

R中的if语句。错误参数的长度为零

来自分类Dev

r if 语句遇到错误:参数长度为零

来自分类Dev

尝试循环 if 条件时收到错误:“参数长度为零”

来自分类Dev

Rails:参数数目错误(给定1,预期为0)

来自分类Dev

错误数量的参数(给定 0,预期为 1) - Ruby

来自分类Dev

当Debug设置为零时,Heroku上的CakePHP错误

来自分类Dev

错误:预期为整数表达式-比较表

来自分类Dev

file:write()错误:“错误的参数#1为'write'(预期字符串,为nil)”

来自分类Dev

JS错误:错误:预期参数'cancellable'的对象类型为GCancellable,但字符串类型为

Related 相关文章

  1. 1

    在Elisp中调试“错误设置为零”

  2. 2

    Larave错误:array_merge():预期参数2为数组,字符串为给定

  3. 3

    printf和getenv错误-预期为char *,但参数2为int类型

  4. 4

    路由设置的参数数量错误(2为0)

  5. 5

    Lua:预期指数,为零

  6. 6

    发生 WebSocket 错误:参数数量错误(给定 2,预期为 1)

  7. 7

    参数为零

  8. 8

    内部索引数量错误,预期为2

  9. 9

    Mybatis“desc 表名”不起作用。获取错误为“设置参数时发生错误”

  10. 10

    Kotlin错误:预期类型为android.widget.CompoundButton!的2个参数,kotlin.Boolean

  11. 11

    Jekyll:参数数量错误(给定2个,预期为1个)(ArgumentError)

  12. 12

    Rails:参数数量错误(给定2个,预期为1个)MongoID

  13. 13

    Kotlin错误:预期类型为android.widget.CompoundButton!的2个参数,kotlin.Boolean

  14. 14

    调用特定用户来创建通知?(错误数量的参数(给定 3,预期为 2))

  15. 15

    控制器规范中的参数数量错误(给定 2,预期为 0)

  16. 16

    ArgumentError:Update_Attribute 方法的参数数量错误(给定 1,预期为 2)

  17. 17

    BASIC错误:预期为'='

  18. 18

    错误:预期为“)”?

  19. 19

    C ++“错误预期为')'”

  20. 20

    R中的while循环给出“参数长度为零”错误

  21. 21

    R中的if语句。错误参数的长度为零

  22. 22

    r if 语句遇到错误:参数长度为零

  23. 23

    尝试循环 if 条件时收到错误:“参数长度为零”

  24. 24

    Rails:参数数目错误(给定1,预期为0)

  25. 25

    错误数量的参数(给定 0,预期为 1) - Ruby

  26. 26

    当Debug设置为零时,Heroku上的CakePHP错误

  27. 27

    错误:预期为整数表达式-比较表

  28. 28

    file:write()错误:“错误的参数#1为'write'(预期字符串,为nil)”

  29. 29

    JS错误:错误:预期参数'cancellable'的对象类型为GCancellable,但字符串类型为

热门标签

归档