Lua 的表和类有什么区别?

我是个编程新手,尝试着学习不同的语言。在 Lua 中,有一种表格结构看起来像是超级列表(数组、字典、列表都融为一体),但是在 Lua 中可以这样使用:

player = { health = 100, attack = 50, mana = 54 }
print(player.health)

这会返回 100。但在其他编程语言中,需要使用类才能获得相同的输出。但据我所知,Lua 既有类又有表吗?但表似乎也能很相似地工作,那它们是同样的吗?如果不是,它们之间有什么区别,使用它们各有哪些优缺点?

点赞
用户734069
用户734069

但据我的了解,Lua 有类以及表格吗?

不,它没有。

Lua(不考虑 C API 方面的内容)只有一个复杂的数据结构:表格。

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

在 Lua 中,每个复杂的东西在其基本层次上都是一个表格。或者如果它来自 C API,那就是 userdata。

一个类基本上是创建对象的原型。你声明一个类有 X、Y 和 Z 成员,然后你创建一个该类类型的对象,该对象将有 X、Y 和 Z 成员。

你可以创建 Lua 表格来模仿类的行为。但是,在 Lua 中没有像类一样正式的语言结构。

2016-04-21 22:46:19
用户1783292
用户1783292

Lua 没有类,但只有带有元表的表格,Lua 使用原型来实现面向对象编程。

2016-04-22 04:53:56
用户6245072
用户6245072

我认为你感到困惑的原因是,在其他编程语言中,“object.attribute”通常是访问对象属性的方式。

然而,Lua 没有类,因此点可以用于访问表的字段,而“table.field”与编写“table [“field”]”完全相同。

2016-04-23 17:12:14