lua
文章平均质量分 60
冷月醉雪
这个作者很懒,什么都没留下…
展开
-
Lua变量
变量在使用前,必须在代码中进行声明,即创建该变量。 编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。 Lua 变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认...原创 2018-03-30 12:41:36 · 393 阅读 · 0 评论 -
Lua 简介
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。设计目的 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua特性轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。 可扩展: Lua提供了非常易于使用的...转载 2018-03-29 12:18:10 · 674 阅读 · 0 评论 -
Lua 环境安装
Linux系统上安装 Linux & Mac上安装 Lua 安装非常简单,只需要下载源码包并在终端解压编译即可,本文使用了5.3.0版本进行安装:curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gztar zxf lua-5.3.0.tar.gzcd lua-5.3.0make linux testmake inst...原创 2018-03-29 12:22:08 · 631 阅读 · 0 评论 -
Lua 基本语法
交互式编程 Lua 提供了交互式编程模式。我们可以在命令行中输入程序并立即查看效果。 Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用:$ lua -i $ Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio> 在命令行中,输入以下命令:> print("He...原创 2018-03-29 13:02:35 · 1140 阅读 · 0 评论 -
Lua数据类型
Lua是动态数据类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。 Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。 数据类型 描述 nil 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。 ...原创 2018-03-29 13:32:50 · 266 阅读 · 0 评论 -
Lua table(表)
table是Lua的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。Lua table 使用关联型数组,你可以使用任意类型的值来作数组的索引,但这个值不能是nil。Lua table是不固定大小的,你可以根据自己需要进行扩容。Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 table(表)的构造 构造器是...原创 2018-04-12 12:34:29 · 5199 阅读 · 0 评论 -
Lua模块与包
模块类似于一个封装库,从Lua 5.1开始,Lua加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以API接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。 Lua的模块是由变量、函数等已知元素组成的table,因此创建一个模块很简单,就是创建一个table,然后把需要导出的变量、函数放入其中,最后返回这个table就行。以下为创建自定义模块 module...原创 2018-04-12 14:29:15 · 389 阅读 · 0 评论 -
Lua 元素(Metatable)
在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。因此 Lua 提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。 例如,使用元表我们可以定义Lua如何计算两个table的相加操作a+b。当Lua试图对两个表进行相加时,先检查两者之一是否有元表,之后检查是否有一个叫"__ad...原创 2018-04-18 20:50:21 · 484 阅读 · 0 评论 -
Lua 协同程序(coroutine)
什么是协同(coroutine) Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程与协同程序的区别 线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个...原创 2018-04-18 20:59:06 · 256 阅读 · 0 评论 -
Lua 文件 I/O
Lua 文件 I/O Lua I/O 库用于读取和处理文件。分为简单模式(和C一样)、完全模式。简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。 完全模式(complete model) 使用外部的文件句柄来实现。它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法 简单模式在做一些简单的文件操作时较为合适。但...原创 2018-04-18 21:07:01 · 209 阅读 · 0 评论 -
Lua 错误处理
程序运行中错误处理是必要的,在我们进行文件操作,数据转移及web service 调用过程中都会出现不可预期的错误。如果不注重错误信息的处理,就会造成信息泄露,程序无法运行等情况。 任何程序语言中,都需要错误处理。错误类型有: ·语法错误 ·运行错误 语法错误 语法错误通常是由于对程序的组件(如运算符、表达式)使用不当引起的。一个简单的实例如下:...原创 2018-04-18 21:19:11 · 4705 阅读 · 0 评论 -
Lua 调试(Debug)
Lua 提供了 debug 库用于提供创建我们自定义调试器的功能。Lua 本身并未有内置的调试器,但很多开发者共享了他们的 Lua 调试器代码。 Lua 中 debug 库包含以下函数: 序号 方法 & 用途 1. debug(): 进入一个用户交互模式,运行用户输入的每个字符串。 使用简单的命令以及其它调试设置,用户可以检阅全局变量和局部变...原创 2018-04-18 21:25:20 · 1822 阅读 · 0 评论 -
Lua迭代器
迭代器(iterator)是一种对象,它能够用来遍历标准模版库容器的部分或全部元素,每个迭代器对象代表容器中的确定的地址。 在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。泛型 for 迭代器 泛型for在自己内部保存迭代函数,实际上它保存了三个值:迭代函数、状态常量、控制变量。 泛型for迭代器提供了集合的key/value对,语法格式...原创 2018-04-11 12:41:25 · 211 阅读 · 0 评论 -
Lua 数据库访问
Lua数据库的操作库为:LuaSQL。它是开源的,支持的数据库有:ODBC、ADO、Oracle、MySQL、SQLite和PostgreSQL。 LuaSQL 可以使用 LuaRocks 来安装可以根据需要安装你需要的数据库驱动。LuaRocks 安装方法:$ wget http://luarocks.org/releases/luarocks-2.2.1.tar.gz...原创 2018-04-03 12:47:26 · 981 阅读 · 0 评论 -
Lua 垃圾回收
Lua 垃圾回收 Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来, 也不用考虑在对象不再被使用后怎样释放它们所占用的内存。 Lua 运行了一个垃圾收集器来收集所有死对象 (即在 Lua 中不可能再访问到的对象)来完成自动内存管理的工作。 Lua 中所有用到的内存,如:字符串、表、用户数据、函数、线程、 内部结构等,都服从自动管理。 ...原创 2018-04-03 12:43:07 · 346 阅读 · 0 评论 -
Lua循环
很多情况下我们需要做一些有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。 Lua 语言提供了以下几种循环处理方式:循环类型 描述 while 循环 ...原创 2018-03-30 12:52:18 · 186 阅读 · 0 评论 -
Lua while 循环
语法 Lua 编程语言中 while 循环语法:while(condition)do statementsend statements(循环体语句) 可以是一条或多条语句,condition(条件) 可以是任意表达式,在 condition(条件) 为 true 时执行循环体语句。 流程图如下: 在以上流程图中我们可以看出在condition(条件)为 ...原创 2018-03-30 12:56:00 · 1242 阅读 · 0 评论 -
Lua for 循环
Lua 编程语言中 for 循环语句可以重复执行指定语句,重复次数可在 for 语句中控制。 Lua 编程语言中 for语句有两大类::数值for循环 泛型for循环 数值for循环for var=exp1,exp2,exp3 do <执行体> end var从exp1变化到exp2,每次变化以exp3为步长递增var,并执...原创 2018-03-30 13:01:37 · 3081 阅读 · 0 评论 -
Lua repeat...until 循环
Lua 编程语言中 repeat...until 循环语句不同于 for 和 while循环,for 和 while 循环的条件语句在当前循环执行开始时判断,而 repeat...until 循环的条件语句在当前循环结束后判断。语法 Lua 编程语言中 repeat...until 循环语法格式:repeat statementsuntil( condition...原创 2018-03-30 14:04:45 · 1919 阅读 · 0 评论 -
Lua 循环嵌套
语法 Lua 编程语言中 for 循环嵌套语法格式:for init,max/min value, incrementdo for init,max/min value, increment do statements end statementsend Lua 编程语言中 while 循环嵌套语法格式:while(condi...原创 2018-03-30 14:07:37 · 1040 阅读 · 0 评论 -
Lua break 语句
Lua 编程语言 break 语句插入在循环体中,用于退出当前循环或语句,并开始脚本执行紧接着的语句。 如果你使用循环嵌套,break语句将停止最内层循环的执行,并开始执行的外层的循环语句。 语法break 流程图: 实例 下实例执行 while 循环,在变量 a 小于 20 时输出 a 的值,并在 a 大于 15 时终止执行循环:--...原创 2018-03-30 14:10:33 · 1455 阅读 · 0 评论 -
Lua 流程控制
Lua编程语言流程控制语句通过程序设定一个或多个条件语句来设定。在条件为true时执行指定程序代码,在条件为false时执行其他指定代码。 下图是典型的流程控制流程图: 控制结构的条件表达式结果可以是任何值,Lua认为false和nil为假,true和非nil为真。 要注意的是Lua中 0 为 true:--[ 0 为 true ]if(0)then...原创 2018-03-31 11:19:06 · 445 阅读 · 0 评论 -
Lua 函数
在Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。 Lua 函数主要有两种用途: ·1.完成指定的任务,这种情况下函数作为调用语句使用; ·2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。...原创 2018-03-31 12:11:48 · 149 阅读 · 0 评论 -
Lua 运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型: ·算术运算符 ·关系运算符 ·逻辑运算符 ·其他运算符 算术运算符 下表列出了 Lua 语言中的常用算术运算符,设定 A 的值为10,B 的值为 20:操作符 描述 实例 + 加法 A + B 输出结果 30...原创 2018-03-31 12:16:51 · 677 阅读 · 0 评论 -
Lua 字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。 Lua语言中字符串可以使用以下三种方式来表示:单引号间的一串字符 双引号的一串字符 [[和]]间的一串字符 以上三种方式的字符串实例如下:string1 = "Lua"print("\"字符串 1 是\"",string1)string2 = 'runoob.com'print("字符串 ...原创 2018-03-31 17:01:22 · 668 阅读 · 0 评论 -
Lua 数组
数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。 Lua 数组的索引键值可以使用整数表示,数组的大小不是固定的。 一维数组 一维数组是最简单的数组,其逻辑结构是线性表。一维数组可以用for循环出数组中的元素,如下实例:array = {"Lua", "Tutorial"}for i= 0, 2 do print(array[...原创 2018-03-31 17:07:29 · 1658 阅读 · 0 评论 -
Lua 面向对象
面向对象的特征 1)封装:指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。 2)继承:继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率。 3)多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法...原创 2018-04-18 21:52:45 · 659 阅读 · 0 评论