Lua 这些是什么样的元方法,它们存在的原因以及它们是如何创建的
大家好强> 我一直在学习元方法,我意识到一些奇怪的事情 我已经知道Lua文档中的所有元方法,如Lua 这些是什么样的元方法,它们存在的原因以及它们是如何创建的,lua,metatable,meta-method,Lua,Metatable,Meta Method,大家好 我一直在学习元方法,我意识到一些奇怪的事情 我已经知道Lua文档中的所有元方法,如\uuuu add,\uu index,\uu newindex,等等。。。但我在论坛和问题中看到人们使用元方法,如\uuuu ev,\uu close,\uu group,我从未在其他任何地方见过这些元方法被使用或存在于任何文档中 我的问题是,这些元方法存在吗?如果没有,它们是如何产生的?为什么人们会创建这种元方法? 无论如何,感谢大家的关注这些都是定制的元方法,在特定的项目或框架中有特殊的用途 元方法用
\uuuu add
,\uu index
,\uu newindex
,等等。。。但我在论坛和问题中看到人们使用元方法,如\uuuu ev
,\uu close
,\uu group
,我从未在其他任何地方见过这些元方法被使用或存在于任何文档中
我的问题是,这些元方法存在吗?如果没有,它们是如何产生的?为什么人们会创建这种元方法?
无论如何,感谢大家的关注这些都是定制的元方法,在特定的项目或框架中有特殊的用途 元方法用于扩展
表
或用户数据
的功能。这些是实现OOP行为最有用的方法
一些程序员添加自定义元表和元方法以实现内部目的和更好的可读性,例如\uuuu super
,\uuu extend
,\uu inherit
。在大多数情况下,这些元数据是从标准元方法使用的,如\uuu index
,\uu call
。。。或者从常规方法到清理对象、错误处理等等
例如,\uuuu close
可以与连接或文件对象一起使用,以可预测的方式管理它们,\uu gc
不能用于此目的
\uuu组的用法示例:扩展是您可以做的神奇的事情,不要忘记保护扩展的元方法\uu元表。例如,看一个字符串\u版本
,它的索引方法是用字符串
函数填充的表。因此,对于每一个字符串,您都可以实现神奇的效果:print(\u VERSION:rep(50))
问题是:为什么不使用数据类型表和整数无元方法?