Lua中的metatable详解

exit_20209 32 0 pdf 2021-06-25 13:06:32

Lua 中 metatable 是一个普通的 table,但其主要有以下几个功能:1.定义算术操作符和关系操作符的行为Metatable 能够被用于定义算术操作符和关系操作符的行为。Lua 中每个 value 都可以有一个 metatable。每个 table 和 userdata value 都有一个属于自己的 metatable,而其他每种类型的所有 value 共享一个属于本类型的 metatable。在 Lua 代码中,通过调用 setmetatable 来设置且只能设置 table 的 metatable,在 C/C++ 中调用 Lua C API 则可以设置所有 value 的 metatable。默认的情况下,string 类型有自己的 metatable,而其他类型则没有:Metamethod 的参数为操作数,例如:每个算术操作符有对应的 metamethod:

Lua中的metatable详解

Lua中的metatable详解

Lua中的metatable详解

Lua中的metatable详解

Lua中的metatable详解

用户评论
请输入评论内容
评分:
暂无评论