1、本文继续讲解Lua调用C/C++函数,本文的重点是通过metatable来实现Lua Code面向对象调用注册的C函数。本文中涉及的Environment 伪索引,userdata 以及GC 垃圾回收器的内容,都是简单的讲解。不作为本文的重点,这些内容都将在以后的章节中继续讲解。
2、本文涉及的到主要知识点补充说明。
2.1 void *lua_newuserdata (lua_State...
分类:
编程语言 时间:
2015-06-22 09:55:11
阅读次数:
134
上一篇文章给了一个面向对象的方案,美中不足的是没有析构函数 Destructor,那么这一次就给它加上。 既然是析构,那么就是在对象被销毁之前做该做的事情,lua 5.1 的 userdata 可以给其 metatable 增加一个 __gc 域,指定一个函数,将会在被回收时调用,这个 __g...
分类:
其他好文 时间:
2015-06-11 11:02:06
阅读次数:
170
lua metatable 和 _index中文博客解释:http://www.cnblogs.com/simonw/archive/2007/01/17/622032.htmlmetatable:http://www.lua.org/pil/13.html 表的通用方法中,有些缺失的, 使用met...
分类:
Web程序 时间:
2015-05-20 01:58:43
阅读次数:
233
select * from Statistic;
select * from IndexStatistic;
select * from Metatable;...
分类:
数据库 时间:
2015-05-18 14:48:54
阅读次数:
207
原文地址http://wuzhiwei.net/lua_make_class/不错,将metatable讲的很透彻,我终于懂了。------------------------------------------------------------Lua中没有类的概念,但我们可以利用Lua本身的语言...
分类:
其他好文 时间:
2015-05-13 19:13:20
阅读次数:
129
father = { house=1}son = { car=1}setmetatable(son, father) --把son的metatable设置为fatherprint(son.house)输出的结果是nil,但如果把代码改为father = { house=1}fath...
分类:
其他好文 时间:
2015-04-27 12:48:41
阅读次数:
105
--元表和元方法给lua里的值设定一些操作,让我们可以对这些操作自定义--创建一个新的table变量时,它是不存在元表的--在Lua中,只能设置table的元表,其他类型的值的元表,只能通过C代码来完成local mt={}mt.__add=function(t1,t2)print("i am re...
分类:
Web程序 时间:
2015-04-24 18:06:15
阅读次数:
133
利用Lua的元表(metatable)和元函数(metafunction)可以很简单的实现此功能。其实现大致分为三个部分1.禁止在表中创建新值2.禁止改变已有的值3.将子表也变为只读1.禁止在表中创建新值使用__newindex元函数即可,它的作用就是在表赋新值时调用local static = {...
分类:
其他好文 时间:
2015-04-23 15:22:44
阅读次数:
119
1、概述
table是lua中唯一的表示数据结构的工具。它可以用于实现数据容器、函数环境(Env)、元表(metatable)、模块(module)和注册表(registery)等其他各种用途。因此了解table的实现是非常有必要的,根据《Lua中数据类型的源码实现》中知道,在Lua中,table是由结构体体Table来实现的。下面将以Lua 5.2.1的源码来看table的实现。
2、实现原...
分类:
其他好文 时间:
2015-04-14 21:37:37
阅读次数:
200
让lua面向对象lua本身不支持面向对象的特性,但是由于lua是基于原型(prototype)的语言,要实现面向对象的特性也是有一定的方法的,实现方式有很多种, 总结了一下我最近对使用lua实现面向对象的特性,主要可以分为以下两种不同的方式来实现: 1、使用metatable的__index域实现....
分类:
移动开发 时间:
2015-03-10 15:16:07
阅读次数:
313