Lua - 限制函数参数为特定类型

我有一个名为particle.new的函数,其中一个参数叫做“colour”。我需要它始终是一个表格,但实际上它不是。这给我带来了一个错误,因为我正在使用一个名为love.graphics.setColor()的函数,并且我需要给它一个表格。我正在使用我的颜色变量,但是它不能正常运行,因为它需要一个表格,而且认为颜色不是一个表格。无论如何,这是我的代码。

顺便说一下,我正在使用Love2D游戏引擎。

点赞
用户3984895
用户3984895

你的问题不是 self.colour 不是一个表格,而是这一行

prevColor = love.graphics.getColor()

当你这样做时,prevColor只获得了四个返回值中的一个。解决方法是将函数调用封装在一个表格中,以保留所有4个值。 (就像@EgorSkriptunoff所说的那样)

prevColor = {love.graphics.getColor()}

至于你的问题:使用asserttype检查变量类型

assert(type(colour)=="table", "-错误消息在这里-")

不过,请注意,assert将抛出一个错误,这将弹出蓝色的love2d屏幕并停止您的程序运行。

2015-11-10 16:14:15