文章分类 - Lua
摘要:前言 Lua将其所有的全局变量保存在一个常规的table中,这个table称为“环境”。这种组织结构的优点在于,其一,不需要再为全局变量创造一种 新的数据结构,因此简化了Lua的内部实现;另一个优点是,可以像其他table一样操作这个table。为了便于实施这种操作,Lua将环境table 自身保存
阅读全文
摘要:前言 Lua中的函数和C++中的函数的含义是一致的,Lua中的函数格式如下: 在调用函数时,也需要将对应的参数放在一对圆括号中,即使调用函数时没有参数,也必须写出一对空括号。对于这个规则只有一种特殊的例外情况:一个函数若只有一个参数,并且此参数是一个字符串或table构造式,那么圆括号便可以省略掉。
阅读全文
摘要:函数名 描述 示例 结果 pi 圆周率 math.pi 3.1415926535898 abs 取绝对值 math.abs(-2012) 2012 ceil 向上取整 math.ceil(9.1) 10 floor 向下取整 math.floor(9.9) 9 max 取参数最大值 math.max(...
阅读全文
摘要:不像开发as3时用fb有强大的断点调试功能,一般lua开发不用什么高级的ide,貌 似也没有适合的,就直接用sublime、exvim等文本编辑器,直接编译运行看结果。所以不能很方便的知道变量值,特别是开发手游时,前后端调协议, 如果无法查看后端发过来的数据就更蛋疼了。对于其他的数据还可以直接用pr
阅读全文
摘要:table.sort 简单来说就是table.sort的第二个参数支持自定义比较函数,这类似于c++的容器支持自定义比较函数一样,代码如下: 深入学习 在自己工作过程中,遇到过下面两个问题 1.自定义排序算法的问题 第一个问题是:当自定义比较函数出现比较两个参数时,无法严格给出一个结果,就会出现错误
阅读全文
摘要:标准os库 os.rename(oldname, newname) 文件重命名; os.remove(filename) 删除一个文件 os.execute(cmd) os.execute可运行一条系统命令,类似于C语言的system函数。 os.exit(code) 中止当前程序的执行,code参
阅读全文
摘要:if 语句 Lua认为false和nil为假,true 和非nil为真。要注意的是Lua中 0 为 true。(坑死我了) == 判断 Lua认为false不等于nil。false是有效值,而nil是无效值。 table.sort语句 排序函数必须是稳定的。不稳定会造成问题。(http://www.
阅读全文
摘要:从上面的例子可以看出来,只有例子四相当于:传引用. 例子一,二,三,五,六都是:传值 所以可以说明:只有table是传引用(相当于一个指针a将地址传给指针b,它们所指向的内容都是一样的) 例子一 [java] view plain copy x = 1 y = x y = 10 print(x) 输
阅读全文
摘要:unpack它接受一个数组(table)作为参数,并默认从下标1开始返回数组的所有元素,例子代码如下: [cpp] view plain copy [cpp] view plain copy
阅读全文
摘要:调用select时,必须传入一个固定实参selector(选择开关)和一系列变长参数。如果selector为数字n,那么select返回它的第n个可变实参,否则只能为字符串"#",这样select会返回变长参数的总数。例子代码: [cpp] view plain copy [cpp] view pl
阅读全文
摘要:Lua中的协程和多线程很相似,每一个协程有自己的堆栈,自己的局部变量,可以通过yield-resume实现在协程间的切换。不同之处是:Lua协程是非抢占式的多线程,必须手动在不同的协程间切换,且同一时刻只能有一个协程在运行。并且Lua中的协程无法在外部将其停止,而且有可能导致程序阻塞。 一、基本环境
阅读全文
摘要:Lua中有8个基本类型分别为 函数 type 可以测试给定变量或者值的类型。 运算符的优先级如下(从高到低) 从高到低的顺序: 除了 ^和 .. 外所有的二元运算符都是左连接的。
阅读全文
摘要:转自:http://cn.cocos2d-x.org/tutorial/show?id=1474 一、Lua堆栈 要理解Lua和C++交互,首先要理解Lua堆栈。 简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。 在Lua中,Lua堆栈就是一个struct,
阅读全文
摘要:首先看看书中是怎么描述闭包的 Lua 中的函数是带有词法定界(lexical scoping)的第一类值(first-class values)。 第一类值指:在 Lua 中函数和其他值(数值、字符串)一样,函数可以被存放在变量中,也可以存放在表中,可以作为函数的参数,还可以作为函数的返回值。 词法
阅读全文
摘要:lua文件读写 lua里的文件读写模型来自C语言,分为完整模型(和C一样)、简单模型。 1、简单模型 io.input([file]) 设置默认的输入文件,file为文件名(此时会以文本读入)或文件句柄(可以理解为把柄,有了把柄就可以找到文件),返回文件句柄。 io.output([file]) 设
阅读全文
摘要:当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table。 for key, value in pairs(tbtest) do XXX end for k,v in pairs(tbtest) do 这样的遍历顺序并非是tbtest中table的排列顺序,而是根据tbtest中
阅读全文
摘要:1、loadfile 只编译,不运行。 loadfile编译代码成中间码并且返回编译后的chunk作为一个函数,而不执行代码;另外loadfile不会抛出错误信息而是返回错误代号。 loadstring与loadfile相似,只不过它不是从文件里读入chunk,而是从一个串中读入。 2、dofile
阅读全文
摘要:Lua中的数据结构—table lua定义了以下几种类型: tables的实现被分成了两个部分: 核心由ltable.c完成,提供了table的基本存取方法, 外部table库(ltablib.c)提供了辅助操作接口(concat, foreach, foreachi, getn, maxn, in
阅读全文
摘要:一部分的table函数只对其数组部分产生影响, 而另一部分则对整个table均产生影响. 下面会分开说明. table.concat(table, sep, start, end) concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table
阅读全文
摘要:Lua脚本语法说明(增加lua5.1部份特性) Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua程序了。 在Lua中,一切都是变量,除了关键字。I. 首先是注释 写一个程序,总是少不了
阅读全文

浙公网安备 33010602011771号