Lua 的表和类有什么区别?
2016-4-21 22:10:46
收藏:0
阅读:93
评论:3
我是个编程新手,尝试着学习不同的语言。在 Lua 中,有一种表格结构看起来像是超级列表(数组、字典、列表都融为一体),但是在 Lua 中可以这样使用:
player = { health = 100, attack = 50, mana = 54 }
print(player.health)
这会返回 100。但在其他编程语言中,需要使用类才能获得相同的输出。但据我所知,Lua 既有类又有表吗?但表似乎也能很相似地工作,那它们是同样的吗?如果不是,它们之间有什么区别,使用它们各有哪些优缺点?
点赞
用户1783292
Lua 没有类,但只有带有元表的表格,Lua 使用原型来实现面向对象编程。
2016-04-22 04:53:56
用户6245072
我认为你感到困惑的原因是,在其他编程语言中,“object.attribute”通常是访问对象属性的方式。
然而,Lua 没有类,因此点可以用于访问表的字段,而“table.field”与编写“table [“field”]”完全相同。
2016-04-23 17:12:14
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
但据我的了解,Lua 有类以及表格吗?
不,它没有。
Lua(不考虑 C API 方面的内容)只有一个复杂的数据结构:表格。
你可以使用表格_创建_一个类。你可以使用表格创建各种各样的东西。Lua 表格非常灵活,正是因为它们是 Lua_唯一_的数据结构。
在 Lua 中,每个复杂的东西在其基本层次上都是一个表格。或者如果它来自 C API,那就是 userdata。
一个类基本上是创建对象的原型。你声明一个类有 X、Y 和 Z 成员,然后你创建一个该类类型的对象,该对象将有 X、Y 和 Z 成员。
你可以创建 Lua 表格来模仿类的行为。但是,在 Lua 中没有像类一样正式的语言结构。