Metatable 对象默认的操作方式
来源:互联网 发布:审判者极速踢腿宏编程 编辑:程序博客网 时间:2024/06/05 23:00
lua基础:http://www.jb51.net/article/55394.htm
metatable学习:http://mobile.51cto.com/iphone-285892.htm
--定义2个表
- a = {5, 6}
- b = {7, 8}
--用c来做Metatable
- c = {}
--重定义加法操作
- c.__add = function(op1, op2)
- for _, item in ipairs(op2) do
- table.insert(op1, item)
- end
- return op1
- end
--将a的Metatable设置为c
- setmetatable(a, c)
--d现在的样子是{5,6,7,8}
- d = a + b
至于__add这是MetaMethod,这是Lua内建约定的,其它的还有如下的MetaMethod:
__add(a, b) 对应表达式 a + b
__sub(a, b) 对应表达式 a - b
__mul(a, b) 对应表达式 a * b
__div(a, b) 对应表达式 a / b
__mod(a, b) 对应表达式 a % b
__pow(a, b) 对应表达式 a ^ b
__unm(a) 对应表达式 -a
__concat(a, b) 对应表达式 a .. b
__len(a) 对应表达式 #a
__eq(a, b) 对应表达式 a == b
__lt(a, b) 对应表达式 a < b
__le(a, b) 对应表达式 a <= b
__index(a, b) 对应表达式 a.b
__newindex(a, b, c) 对应表达式 a.b = c
__call(a, ...) 对应表达式 a(...)
0 0
- Metatable 对象默认的操作方式
- LUA中的metatable笔记 (metatable的默认元素)
- Metatable与面向对象、继承
- lua的metatable简介
- lua的metatable讲解
- MetaTable
- Metatable
- JdbcTemplate以对象的方式操作数据库
- C++对象模型之默认构造函数的构造操作
- c++对象模型-默认构造函数的构造操作
- lua: userdata的metatable使用
- 如何改变MFC默认文档操作方式
- 改变MFC默认文档操作方式
- 操作符的默认
- Lua的Metatable和OOP相关
- lua metatable及其相关方法的简述
- lua的metatable查找成员源码分析
- Java操作对象的一种基本方式:“别名”
- 设计模式:(4)原型模式(Prototype)
- effective c++学习笔记0
- 在sqlplus中可以使用上下键工具--rlwrap工具包(真是一个好东西 )
- interface VS abstract class in java
- Android 依赖注入框架 Dagger2使用
- Metatable 对象默认的操作方式
- Java设计模式(六) 模版方法模式详解
- ios学习路线—Objective-C(代码规范)
- activity生命周期
- tomcat配置虚拟主机
- UVA - 11059(暴力水题)
- 3.3.const关键字和指针的纠缠
- Docker CentOS7 LNMP环境yum方式安装
- openvpn access server 一键搭建脚本