Lua 元表(metatable)
来源:互联网 发布:php服务器搭建 编辑:程序博客网 时间:2024/04/29 04:04
Lua中每个值都有一个元表。 这个元表就是一个普通的Lua 表,它用于定义原始值在特定操作下的行为。如果你想改变一个值在特定操作下的行为,你可以在它的元表中设置对应域。例如,当你对非数字值做加操作时, Lua 会检查该值的元表中的 “__add” 域下的函数。 如果能找到,Lua 则调用这个函数来完成加这个操作。
使用 setmetatable 来替换一张表的元表。在Lua中,你不可以改变表以外其它类型的值的元表, 若想改变这些非表类型的值的元表,要使用 C API。
setmetatable (table, metatable)给指定表设置元表。 (你不能在 Lua 中改变其它类型值的元表,那些只能在 C 里做。)如果 metatable 是 nil, 将指定表的元表移除。 如果原来那张元表有 "__metatable" 键值,则会失败并抛出一个错误。
可以用 getmetatable 函数 来获取任何值的元表
getmetatable (object)如果 object 不包含元表,返回 nil 。 否则,如果在该对象的元表中有 "__metatable" 键值时返回其关联值, 没有时返回该对象的元表。
0 0
- Lua 元表(metatable)
- Lua-元表(Metatable)
- Lua -- 元表(Metatable)
- Lua 元表(Metatable)
- Lua 元表(Metatable)
- lua学习笔记——元表(Metatable)
- LUA学习之第三篇----元表(metatable)
- Lua基础之元表(Metatable)
- Lua——3.元表Metatable
- Lua 原表(metatable )
- lua(6)-元表(metatable)和元方法(meatmethod)
- Lua:元表(metatable)与元方法(meatmethod)
- Lua:元表(metatable)与元方法(meatmethod)
- Lua:元表(metatable)与元方法(meatmethod)
- Lua中的元表(metatable)与元方法(metamethod)
- Lua:元表(metatable)与元方法(meatmethod)
- Lua:元表(metatable)与元方法(meatmethod)
- Lua中的元表(metatable)、元方法(metamethod)详解
- SpringMVC - @ModelAttribute运用详解-1
- 配置composer代理
- solr管理界面详解
- 数据库操作(增删改查+升级表结构)
- 数据库的主键数字设置
- Lua 元表(metatable)
- java设计模式,命令模式
- HTTP请求和数据安全
- python小练习5:如何判断一个数能否被3整除
- 浅谈RAID写惩罚(Write Penalty)与IOPS计算
- mysql 存储过程的使用
- maven笔记
- Tomcat中SpringMVC的静态资源配置
- InputArray OutputArray 与vector 什么关系 ?