随笔分类 - lua
摘要:(一) 首要概念要理清: 1. 在lua中,函数是一种"第一类值",他们具有特定的词法域."第一类值"表示在lua中函数与其他传统类型的值(例如数字和字符串)具有相同的权利. 2. 函数可以存储到变量中(无论全局变量还是局部变量)或table中,可以作为实参传递给其他函数,还是作为其他函数的返回值;
阅读全文
摘要:本篇仅简单介绍使用lua_tinker让lua调用C++函数的过程, C++调用lua函数可以参见博客Lua脚本和C++交互(一). 未完待续. (一) lua调用C++全局函数 这里以lua_tinker自带的sample1作为分析例子.C++源码如下: lua文件源码如下: 从main函数开始分
阅读全文
摘要:1. lua全局环境和局部环境 [参见] http://blog.sina.com.cn/s/blog_4458fdda01012f4b.html http://www.tuicool.com/articles/RVZvMbn http://blog.csdn.net/maximuszhou/art
阅读全文
摘要:一、-- C++类注册函数(LuaTinker) 的lua栈操作:-- lua栈内容(执行到pop语句) 栈地址 -- (2d8) -- lua_rawset(L, -3);-- destroyer ...
阅读全文
摘要:一、基础概念 Lua 本身是函数式的语言,但借助 metatable (元表)这个强大的工具,Lua 实现操作符重载易如反掌。。 下文将详细的解释在Lua中实现类的原理,涉及到的细节点将拆分出来讲,相信对Lua中实现类的理解有困难的同学将会释疑。 类是什么? 想要实现类,就要知道类到底是什么。在我看
阅读全文
摘要:前言 前言 Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏。像《魔兽世界》的插件,手机游戏《大掌门》《神曲》《迷失之地》等都是用Lua来写的逻辑。 所以大部分时候我们不需要去考虑性能问题。Knuth有句名言:“过早优化是万恶之源”。其意思就是过早优化是不必要的,会浪费大量时间,
阅读全文
摘要:一、检测lua内存泄漏:注:使用“collectgarbage("collect")”,局部变量v被回收,my_list没有被回收。注:局部变量v占用的内存被回收。注:将my_list置为nil,使用“collectgarbage("collect")”可以回收。总结一: 如何监测Lua的编程产生内...
阅读全文
摘要:1 .Lua生成随机数: Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]]) 1. math.randomseed(n) 接收一个整数 n 作为随机序列种子。2. math.random([n [, m]]) 有三种用法: 无参
阅读全文
摘要:第一部分:在vs2010中生成luabind静态库和动态库一、前期准备1.安装boost下载boost并解压到 D:\mylua\boost_1_56_0,进入 D:\mylua\boost_1_56_0\tools\build 运行bootstrap.bat文件,先编译bjam.exe,再使用bj...
阅读全文
摘要:上一篇中,你已经可以在Lua里面用C++的函数了,那么咱们再增加一点难度,比如,我有一个CTest对象,要作为一个参数,传输给func_Add()执行,怎么办?很简单,如果你对上面的代码仔细阅读,你会发现下面的代码一样简洁。为了支持刚才要说的需求,我们需要把Sample.lua再做一点修改。func...
阅读全文
摘要:前两篇文章中介绍了C++调用lua、lua栈操作的一些相关知识。下面说一下Lua的工具。我们下一步要用到其中的一个帮助我们的开发,其实,Lua里面有很多简化开发的工具,你可以去www.sourceforge.net去找一下。它们能够帮助你简化C++对象与Lua对象互转之间的代码。这里说几个有名的,当...
阅读全文
摘要:上一节讲了一些基本的Lua应用,下面,我要强调一下,Lua的栈的一些概念,因为这个确实很重要,你会经常用到。熟练使用Lua,最重要的就是要时刻知道什么时候栈里面的数据是什么顺序,都是什么。如果你能熟练知道这些,实际你已经是Lua运用的高手了。当你初始化一个栈的时候,它的栈底是1,而栈顶相对位置是-1
阅读全文
摘要:现在,越来越多的C++服务器和客户端融入了脚本的支持,尤其在网游领域,脚本语言已经渗透到了方方面面,比如你可以在你的客户端增加一个脚本,这个脚本将会帮你在界面上显示新的数据,亦或帮你完成某些任务,亦或帮你查看别的玩家或者NPC的状态。。。如此等等。但是我觉得,其实脚本语言与C++的结合,远远比你在游...
阅读全文
摘要:lua官方英文文档:http://www.lua.org/manual/5.2/ lua中国开发者网址:http://bbs.luaer.cn/ 《lua程序设计(第二版)》(闭合函数和闭包,迭代器与泛型for,协同程序,元表和元方法,环境,模块和require,面向对象编程,弱引用table,函数
阅读全文
摘要:lua的闭包是个新概念,理解它需要个过程。今天在网上找了几篇文章看,不错,先记录下。1,lua闭包普通篇 http://hi.baidu.com/happynp/blog/item/b7736a1f7f65b3ffe0fe0b90.html2,lua闭包文艺篇 http://www.ibm.com/
阅读全文
摘要:最近发现在大数据量的 lua 环境中,GC 占据了很多的 CPU 。差不多是整个 CPU 时间的 20% 左右。希望着手改进。这样,必须先对 lua 的 gc 算法极其实现有一个详尽的理解。我之前读过 lua 的源代码,由于 lua 源码版本变迁,这个工作还需要再做一次。这次我重新阅读了 lua 5
阅读全文
摘要:Lua提供高级的require函数来加载运行库。粗略的说require和dofile完成同样的功能但有两点不同: 1. require会搜索目录加载文件; 2. require会判断是否文件已经加载避免重复加载同一文件。 由于上述特征,require在Lua中是加载库的更好的函数。 (一) requ
阅读全文
摘要:(一) 元表概念: 引言:Lua中的每个值都有一套预定义的操作集合,如数字相加等。但无法将两个table相加,此时可通过元表修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定操作。 访问机制:一般的元方法都只针对Lua的核心,也就是一个虚拟机。它会检测一个操作中的值是否有元表,这些元表是否
阅读全文
摘要:(一). 模式匹配函数在string库中功能最强大的函数是:string.find(字符串查找)string.gsub(全局字符串替换)string.gfind(全局字符串查找)string.gmatch(返回查找到字符串的迭代器) 这些函数都是基于模式匹配的。与其他脚本语言不同的是,Lua并不使用
阅读全文

浙公网安备 33010602011771号