Lua
文章平均质量分 65
liaoshengg
学untiy3d的萌新
展开
-
Lua 八种数据类型以及基本语法
8种数据类型number 实数 ,可以是整数,浮点数string 字符串,一旦赋值不能被修改,可以通过方法string.gsub()来修改nil 全局变量没被赋值默认为nil,删除变量就赋值为 nilboolean(bool) false 和nil为假 ,其它都为真function 函数table 数组、容器userdata (类,其它语言转换过来就变成userda...原创 2018-07-31 20:49:41 · 22135 阅读 · 0 评论 -
Lua闭合函数,以及内存管理
前言Lua的函数有多种使用方法 ,因为Lua内存遵循C内存管理一、闭合函数:”非局部变量生命周期受影响”闭合函数: 函数A中包含另一个函数B,函数B中使用了非局部变量(函数中A的局部变量),构成闭合函数 影响:延长了非局部变量(A函数中局部变量)的生命周期简单说就是一个函数 return了一个匿名函数,匿名函数里又外部函数的局部变量function functionB() ...原创 2018-08-01 14:09:39 · 1693 阅读 · 0 评论 -
Lua 迭代器的实现
迭代器实现lua的迭代器使用了闭合函数来实现,如果对闭合函数不熟悉,可以看我的上一篇Lua的深入函数,讲解了闭合函数 https://blog.csdn.net/liaoshengg/article/details/81327114使用闭合函数来遍历集合中的元素返回值function iteratorLua(t) local i = 0 return functi...原创 2018-08-04 17:27:20 · 696 阅读 · 0 评论 -
Lua 错误处理函数 error()、 pcall()
error函数是让程序停止,进行错误处理如下面代码调用error函数后悔直接报错,后续程序不再执行function funC( num ) if num == 0 then error("程序发生错误") print("是否执行?") else return 100/m endendfun原创 2018-08-04 17:26:42 · 7691 阅读 · 0 评论 -
Lua 文件加载执行方法
前言这里需要写二个文件来做测试 FileLua用来做数据,FileLua2来加载文件 下面的代码在FlieLua2文件中调用运行loadfile()函数的参数里面需要写文件后缀.lua-- loadfile : 加载文件、不执行-- 会把加载的内容以一个函数返回-- 这个方法较麻烦,会返回一个函数,用函数接收然后调用一下local f = loadfile("File...原创 2018-08-04 17:25:15 · 6499 阅读 · 0 评论 -
Lua 协同程序coroutine
前言Lua协同程序: 开启另一个逻辑处理和c#一样,同一时间只能有一个协同程序被执行 线程:同一时间,可以有多个线程执行 进程:线程的一个载体,一个程序的运行独立为一个进程,进程和进程之间都有自己独立的储存单元、一个进程可以包含多个线程、多个线程之间共享存储单元。 比如打开一个手机游戏,这个游戏就有一个进程,游戏内部有很多线程同时运行,线程都有一个共享单元来获取存储数据Lua中协同程...原创 2018-08-01 16:45:13 · 381 阅读 · 0 评论 -
Lua 学习元表,元方法
前言元表与元方法的概念 Lua中每个值都可具有元表。元表是普通的Lua表,定义了原始值在某些特定操作下 的行为。例如,当table作为加法的操作数时,Lua检查其元表中的”__add”字段是否有 个函数。如果有,Lua调用它执行加法。我们称元表中的键为事件(event),称值为 元方法(metamethod)。前述例子中的事件是”add”,元方法是执行加法的函数。 Lua创建新的table...原创 2018-08-02 16:18:48 · 9422 阅读 · 1 评论 -
Lua 中用table表来实现类,继承,以及面向对象
Lua没有类这一说,但是可以使用表来接近实现类的功能,实现面向对象1.创建一个文件ClassA,写objA类:注意:类实际是一个table类型的表,这里是一个类用一个单独的lua文件来存放1.1类中没有任何字段给类添加二个方法objA = {}function objA.play() print("objA.play&am原创 2018-08-04 17:10:07 · 1799 阅读 · 1 评论