lua中的元表和元方法
2020-02-03 20:57
127 查看
元表概念:
引言:Lua中的每个值都有一套预定义的操作集合,如数字相加等。但无法将两个table相加,此时可通过元表修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定操作。
访问机制:一般的元方法都只针对Lua的核心,也就是一个虚拟机。它会检测一个操作中的值是否有元表,这些元表是否定义了关于次操作的元方法。例如两个table相加,先检查两者之一是否有元表,之后检查是否有一个叫“__add”的字段,若找到,则调用对应的值。“__add”等即时字段,其对应的值(往往是一个函数或是table)就是“元方法”。
eg:
--定义元组 tab = {} function String( str ) --增加元组方法value为返回参数字符串 return setmetatable( {value = str or ''}, tab ) end function tab.__add( a, b ) --定义元组方法add为返回两元组联合 return String( a.value..b.value ) end m = String( "hello " ) n = String( "world!" ) print( (m+n).value )
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Lua中的元表(metatable)、元方法(metamethod)详解
- lua中的元表和元方法解析
- Lua中使用元表(metatable)执行算术类元方法实例
- Lua中的元表和元方法
- Lua中的元表与元方法学习总结
- Lua:元表(metatable)与元方法(meatmethod)
- LUA 元表与元方法
- Lua中的元表与元方法
- 【步兵 lua】元表+元方法+弱引用
- Lua中的元表和元方法学习笔记
- Lua 中的元表和元方法
- Lua中的元表与元方法
- Lua中的元表与元方法
- lua中查找表的过程已经(以及对元表和__index方法的理解)
- Lua教程(九):元表与元方法详解
- Lua中的元表和元方法
- Lua:元表(metatable)与元方法(meatmethod)
- Lua:元表(metatable)与元方法(meatmethod)
- Lua中的元表与元方法
- Step By Step(Lua元表与元方法)