Lua
文章平均质量分 71
CashChin
这个作者很懒,什么都没留下…
展开
-
Lua 标准库 - 基本函数(base function)
基本函数库为Lua内置的函数库,不需要额外装载1、assert (v [, message])功能:相当于C的断言,参数: v:当表达式v为nil或false将触发错误,message:发生错误时返回的信息,默认为"assertion failed!" 2、collectgarbage (opt [, arg])功能:是垃圾收集器的通用接口,用于操作垃圾收集器参数: o原创 2007-10-16 13:33:00 · 2758 阅读 · 2 评论 -
Lua学习笔记之 Type and Values
lua是一种动态类型语言, 不用特别声明变量以及指定类型, 首次赋值即为声明. 说到此点, 我觉得动态语言的这种特点与汇编倒是蛮象的: 不管你是什么类型, 对于底层而言, 它代表的就是一内存地址, 而操作符代表的就是对这些地址及存在于这些地址里的量进行操作而已. 闲话少说, 继续看pil, 今天的内容是: types and values.笔记内容:1. lua提供了八种数据类型:原创 2007-10-17 14:52:00 · 3529 阅读 · 0 评论 -
LUA学习笔记2-Iterators and the Generic for
Iterator是一种允许你遍历一个集合中元素的结构. 在Lua中, 我们可以用function实现iterator, 每次调用这个函数, 它都返回集合中的下一个元素. 一个iterator需要保留一些用来遍历的信息, 例如当前元素的位置以及什么时候结束. Closure的机制非常适合这个工作. 遍历所需的环境变量可以保存在upvalue中, 这样每一次调用这个closure, 他都返回遍历某一个转载 2007-10-17 14:50:00 · 942 阅读 · 0 评论 -
Lua 标准库 - 操作系统处理(operating system facilities)
这个库通过表os实现1、os.clock ()功能:返回一个程序使用CPU时间的一个近似值 2、os.date ([format [, time]])功能:返回一个按format格式化日期、时间的字串或表若设置time参数,则按time指定的时间格式化,否则按当前时间格式化参数: format: "!":按格林尼治时间进行格式化。 "*t":将返一原创 2007-10-17 11:15:00 · 1911 阅读 · 0 评论 -
Lua 标准库 - 输入输出处理(input and output facilities)
I/O库提供两种不同的方式进行文件处理1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述 io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄多数I/O函数调用失败时返回nil加错误信息,原创 2007-10-17 10:27:00 · 1763 阅读 · 0 评论 -
lua实现面向对象的特性
lua本身不支持面向对象的特性,但是由于lua是基于原型(prototype)的语言,要实现面向对象的特性也是有一定的方法的,实现方式有很多种, 总结了一下我最近对使用lua实现面向对象的特性,主要可以分为以下两种不同的方式来实现:1、使用metatable的__index域实现,实现的时候需要利用的lua语言的一些特性才可以实现,主要有: a、将table b作为table a的一个pro转载 2007-10-16 17:59:00 · 1438 阅读 · 0 评论 -
Lua 标准库 - 表处理(table manipulation)
表处理库提供通用的表操作函数,所有操作都是基于表注:所有函数只适用于以数字索引访问的表,以1为基索引1、table.concat (table [, sep [, i [, j]]])功能:返回用sep连接表中的字串,sep默认为空字串,i默认为1,j默认为表的长度,如果i大于j则返回空字串2、table.insert(table, [pos,] value)功能:在指定的索引位置po原创 2007-10-16 22:36:00 · 1355 阅读 · 0 评论 -
Lua 标准库 - 模块(Modules)
包库为Lua提供简易的加载及创建模块的方法,由require、module方法及package表组成1、module (name [, ···])功能:建立一个模块。 当package.loaded[name]中存在时,当中的表作为module; 当在全局表中存在name指定的表时,此表作为module; 当以前两种情况都不存表name时,将新建一个表,并使其作为全局原创 2007-10-16 16:33:00 · 2054 阅读 · 0 评论 -
Lua 标准库 - 字符串处理(string manipulation)
字符串库为Lua提供简易的字符串处理操作,所有的字串操作都是以1为基数的(C以0),也可使用负向索引,最后一个索引为-1 ; 所有的函数都存放在string表,并且已建立元表(__index=string表)所以string.byte(s,i) s:byte(i)1、string.byte(s [, i [, j]])功能:返回从i到j的字符所对应的数值(字符 到 ASCII值),i默认为1原创 2007-10-16 17:42:00 · 7916 阅读 · 1 评论 -
Lua 标准库 - 协同程序处理(coroutine manipulation)
协同程序处理库是lua标准库的子类库,可以视作线程使用1、coroutine.create (f)功能:建立一个新的协同程序,f为入口函数,返回一个"thread"的值 2、coroutine.resume (co [, val1, ···])功能:第一次调用resume时,将要启动线程,val1...为传入f的参数 当线程因调用yield挂起,可以用resume继续原创 2007-10-16 15:35:00 · 994 阅读 · 0 评论 -
Lua 标准库 - 算术函数(mathematical functions)
这是一个标准 C 的算术库,所有的函数存放于math表1、math.abs (x)功能:返回x的绝对值2、math.acos(x)功能:函数返回参数x的反余弦值。参数x 应当在-1和1之间3、math.asin (x)功能:函数返回参数x的反正弦值。参数x 应当在-1和1之间。4、math.atan (x)功能:函数返回参数x的反正切值5、math.atan2原创 2007-10-16 23:45:00 · 1357 阅读 · 0 评论 -
Lua 学习笔记之 function、closure和upvalue
Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问外包转载 2007-10-17 14:54:00 · 1112 阅读 · 0 评论