Class 如何在Lua(Love2D)中定义库中的类?
我尝试在一个名为“basic.lua”的文件(名为“Point”)上定义我的类,并尝试在文件“main.lua”上实现它,但我一直遇到以下错误:Class 如何在Lua(Love2D)中定义库中的类?,class,module,lua,love2d,Class,Module,Lua,Love2d,我尝试在一个名为“basic.lua”的文件(名为“Point”)上定义我的类,并尝试在文件“main.lua”上实现它,但我一直遇到以下错误: Error Syntax error: basic.lua:3: '(' expected near 'Point' Traceback [C]: at 0x7ffc269728f0 [C]: in function 'require' main.lua:3: in function 'load' [C]: in function 'xpca
Error
Syntax error: basic.lua:3: '(' expected near 'Point'
Traceback
[C]: at 0x7ffc269728f0
[C]: in function 'require'
main.lua:3: in function 'load'
[C]: in function 'xpcall'
[C]: in function 'xpcall'
这是我的“basic.lua”代码
这是我的“main.lua”代码
我一直在为Lua的类苦苦挣扎,希望能得到任何帮助。您的模块返回一个表,但在该表构造函数中,您尝试定义一个全局函数
点
。不能创建这样的表字段。这是无效的语法
return { function a() end }
使用
相反
PlayerAcceleration.AsString()
这是行不通的。使用PlayerAcceleration.AsString(PlayerAcceleration)
或PlayerAcceleration:AsString()
否则,AsString
的参数self
将为零,从而在尝试将其索引到函数体时出错
“{x:+self.x+”,y:+self.y+”}”
不是在Lua中连接字符串的方式。使用Lua的连接运算符。
而不是+
此外,您正在调用
Basic.Point:new
,它不存在。请做一个Lua初学者教程,在你继续尝试实现类之前阅读Lua中的编程和Lua参考手册。是的,我在起草这篇文章时注意到,我没有在“PlayerAcceleration”中添加“AsString”,所以我只是把它扔到了其他编程语言中(带“.”)由于我没有调试“AsString”方法、连接和构造函数,因为在定义类之前代码就失败了,所以我甚至没有意识到它们是个问题。不过还是要谢谢你,看来我学的东西比我原来想学的要多得多!
return { function a() end }
return { a = function() end }
PlayerAcceleration.AsString()