Lua
文章平均质量分 55
阿童木yss
不能则学,不知则问,耻于问人,决无长进。
展开
-
Lua 数据结构
数组虽然Lua可以自定义下标,但在Lua中习惯上数组的下标从1开始,Lua的标准库与此习惯保持一致,因此如果你的数组下标也是从1开始你就可以直接使用标准库的函数,否则就无法直接使用。a={};for i=1,1000 do a[i]=0;endprint("数组 a 的长度:" .. #a); --计算长度操作符 #squares={1,2,3,4,5}; --在一个表达式中初始化数组原创 2017-01-07 14:38:47 · 2172 阅读 · 0 评论 -
Lua 中自己实现string.Split
方法1:function mysplit(inputstr, sep) if sep == nil then sep = "%s" end local t={} ; i=1 for str in string.gmatch(inputstr, "([^"..sep.."]+)") do原创 2017-01-08 17:31:50 · 3900 阅读 · 0 评论 -
Lua 面向对象
面向对象特征封装:指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。继承:继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率。多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。抽象:抽象(Abstraction)是简原创 2017-01-06 16:22:29 · 1283 阅读 · 0 评论 -
Lua 一些常用方法的区别
ipairs 和 pairs的区别pairs遍历表中全部key,valueipairs从下标为1开始遍历,然后下标累加1,如果某个下标元素不存在就终止遍历。这就导致如果下标不连续或者不是从1开始的表就会中断或者遍历不到元素。a={[1]="a",[2]="b",[3]="c",[4]="d",[5]="e"};for k,v in ipairs(a) doprint(k,v);endprint原创 2017-01-07 09:26:51 · 1391 阅读 · 0 评论 -
Lua 模块与包
模块类似于一个封装库,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。创建自定义模块module.lua,-- 文件名为 module.lua-- 定义一个名为 module 的模块module = {}-- 定义一个常量module.constant = "这是一个常量"-- 定义一个函数func原创 2017-01-06 16:20:32 · 1887 阅读 · 0 评论 -
Lua 协同程序(coroutine)
什么是协同程序?Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程和协同程序区别线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有原创 2017-01-06 15:52:45 · 1351 阅读 · 0 评论 -
Lua 流程控制
## 循环while循环a=0while( a < 10 )do print("a 的值为:", a) a = a+1endfor 循环格式一:for var=exp1,exp2,exp3 do <执行体> end 实例:function f(x) return x+1 endfor i=1,f(5) do print(i)原创 2017-01-06 15:50:50 · 2092 阅读 · 0 评论 -
Lua string 字符串
字符串由一对双引号或单引号来表示string1 = "this is string1" string2 = 'this is string2'也可以用”[[]]”来表示html = [[<html><head></head><body> <a href="http://www.w3cschool.cc/">w3cschool Lua学习</a></body></html原创 2017-01-06 15:49:18 · 2621 阅读 · 0 评论 -
Lua 函数
Lua函数函数是什么的就没必要讲了,相信学过语言的人都会知道。函数定义格式:optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separatedend#####原创 2017-01-06 15:47:42 · 2231 阅读 · 0 评论 -
Lua table(表)
table(表)table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。Lua table 是不固定大小的,你可以根据自己需要进行扩容。Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 例如string.format表示使用原创 2017-01-06 15:46:57 · 1946 阅读 · 0 评论 -
Lua 运算符
Lua提供了以下几种运算符类型:算术运算符关系运算符逻辑运算符其他运算符算术运算符下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 21: 操作符 描述 案例 + 加法 A + B 输出结果 31 - 减法 A - B 输出结果 -11 * 乘法 A * B 输出结果 210 / 除法 B / A w输出原创 2017-01-06 15:44:59 · 1763 阅读 · 0 评论 -
Lua 变量
局部变量和全局变量:a = 5 -- 全局变量local b = 5 -- 局部变量function joke() c = 5 -- 全局变量 local d = 6 -- 局部变量endjoke()print(c,d) --> 5 nildo local a = 6 -原创 2017-01-06 15:41:15 · 1602 阅读 · 0 评论 -
Lua 元表
在Lua table中我们可以访问对应的key来得到value值,但是却无法对两个table进行操作。因此Lua提供了元表,允许我们改变table的行为,每个行为关联了对应的元方法。例如,使用元表我们可以定义Lua如何计算两个table的相加操作a+b。当Lua试图对两个表进行相加时,先检查两者之一是否有元表,之后检查是否有一个叫”__add”的字段,若找到,则调用对应的值。”__add”等即时字段原创 2017-01-06 15:48:33 · 1595 阅读 · 0 评论