lua metatable

admin 轻心小站 关注 LV.19 运营
发表于lua编程版块 教程

Lua的metatable(元表)是一个Lua table,它可以为另一个table(称为原表)指定一些特殊的行为。metatable可以包含以下字段:- __index:当原表中的一个键没有对应的值

Lua的metatable(元表)是一个Lua table,它可以为另一个table(称为原表)指定一些特殊的行为。

metatable可以包含以下字段:

- __index:当原表中的一个键没有对应的值时,会去metatable中查找该键对应的值,如果有则返回,否则返回nil。

- newindex:当原表中的一个键没有对应的值时,如果在metatable中有newindex字段,则会调用该字段的值来设置原表中的键值。

- call:当一个table被当做函数调用时,如果该table有call字段,则会调用该字段的值。

- add、sub、__mul、__div、__mod、__pow、__unm:用于重载运算符。

- __concat:用于重载字符串连接运算符。

- eq、lt、__le:用于比较运算符。

- metatable:当一个table有metatable字段时,该table的metatable不能被修改。

通过为一个table设置metatable,可以改变该table的行为,使其具有一些特殊的功能,比如重载运算符、实现面向对象的编程模型等。

文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
Lua 是一种轻量级的脚本语言,它是由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)的一个研究小组开发的。Lua 的设计目标是为嵌入式系统提供一个可扩展、轻量级的脚本语言。
社区管理员:

暂无管理员

发布评论

评论: lua metatable

粉丝

0

关注

0

收藏

0

已有0次打赏