Lua表和类有什么区别?

use*_*306 1 arrays oop lua class lua-table

我是一般编程的初学者,我一直在尝试一些不同的语言.在Lua中,有些表似乎就像超级列表(数组,字典,列表一样)但在Lua中可以这样做:

player = { health = 100, attack = 50, mana = 54 }
print(player.health)
Run Code Online (Sandbox Code Playgroud)

它将返回100.但在其他编程语言中,您需要创建一个类来获得相同的输出.但根据我的理解,Lua有课程和桌子吗?但表似乎非常相似,所以它们是一样的吗?如果没有,是什么让它们与众不同,使用它们的利弊是什么?

Nic*_*las 8

但根据我的理解,Lua有课程和桌子吗?

不,不是的.

Lua(忽略C API的东西)只有一个复杂的数据结构:表格.

您可以使用表创建一个类.您可以使用表格创建各种各样的东西.Lua表非常灵活,正是因为它们是Lua 唯一的数据结构.

在Lua中,基础级别的每个复杂事物都是一个表格.或者,如果它来自C API,则为userdata.

类基本上是用于创建对象的原型.您声明一个类中包含X,Y和Z成员,然后您创建该类类型的对象,其中包含X,Y和Z成员.

您可以创建模仿类行为的Lua表.但Lua中没有语言结构正式类似于一个类.