脚本专栏 第17页

桃源资源网 Design By www.nqtax.com
Lua教程(二十):Lua调用C函数
Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过

Lua教程(十): 全局变量和非全局的环境
Lua将其所有的全局变量保存在一个常规的table中,这个table被称为“环境”。它被保存在全局变量_G中。1.全局变量声明:Lua中的全局变量不需要声明就可以使用。尽管

Lua教程(二十一):编写C函数的技巧
1.数组操作:在Lua中,“数组”只是table的一个别名,是指以一种特殊的方法来使用table。出于性能原因,Lua的CAPI为数组操作提供了专门的函数,如:复制代码代码如下:v

Lua教程(十一):模块与包详解
从Lua5.1开始,我们可以使用require和module函数来获取和创建Lua中的模块。从使用者的角度来看,一个模块就是一个程序库,可以通过require来加载,之后便得到一个类型

Lua教程(二十二):userdata
在Lua中可以通过自定义类型的方式与C语言代码更高效、更灵活的交互。这里我们通过一个简单完整的示例来学习一下Lua中userdata的使用方式。需要说明的是,该示例完

Lua教程(十二):面向对象编程
Lua中的table就是一种对象,但是如果直接使用仍然会存在大量的问题,见如下代码:复制代码代码如下:Account={balance=0}functionAccount.withdraw(v)Account.balanc

Redis教程(三):List数据类型
一、概述:在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该

Lua教程(十三):弱引用table
Lua采用了基于垃圾收集的内存管理机制,因此对于程序员来说,在很多时候内存问题都将不再困扰他们。然而任何垃圾收集器都不是万能的,在有些特殊情况下,垃圾收集器是

Redis教程(五):Set数据类型
一、概述:在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需

Lua教程(十四):字符串库详解
1.基础字符串函数:字符串库中有一些函数非常简单,如:1).string.len(s)返回字符串s的长度;2).string.rep(s,n)返回字符串s重复n次的结果;3).string.lower(s)返回s的

lua中赋值类型代码详解
我们来看看luavm在解析下面源码并生成bytecode时的整个过程:foo="bar"locala,b="a","b"foo=a首先我们先使用ChunkySpy这个工具来看看vm最终会具体生成什么样的vmi

Lua教程(十五):输入输出库(I/O库)
I/O库为文件操作提供了两种不同的模型,简单模型和完整模型。简单模型假设一个当前输入文件和一个当前输出文件,他的I/O操作均作用于这些文件。完整模型则使用显式

Lua中计算、执行字符串中Lua代码的方法
一、Lua中执行字符串运行过程中有个问题,我有个字符串,是一个数学表达式,如何计算这个字符串表达式的值呢?比如,localparam="7*100",我需要的结果其实是700,但是怎

Lua5.1中加载dll动态链接库的方法
一、加载专门为lua写的扩展dll使用require或package.loadlib方法,在此不做过多解释。二、加载不是专为lua写的扩展dll“不是专为lua写的扩展dll”是指:dll中并没有

Linux下编写Lua扩展so文件和调用方法实例
复制代码代码如下:#include#include#include#include#include#include#include#

Lua中遍历文件操作代码实例
写的一个关于遍历文件的程序段记录一下咯--]getinfo=io.popen('dir..//file/b/s')all=getinfo:

Lua检测数组(tabble)中是否包含某个值
一、检测数组中是否包含某个值--遍历数组functionIsInTable(value,tbl)fork,vinipairs(tbl)doifv==valuethenreturntrue;endendreturnfalse;end二、lua判断一个字

Lua基本语法
1简介由cleanC实现。需要被宿主程序调用,可以注入C函数。2语法约定Lua的语法基于BNF的语法规则。Lua对大小写敏感。2.1保留关键字C语言中没有的关键字有:复制代码

浅谈Lua语句
Lua中的语句支持赋值,控制结构,函数调用,还有变量声明。不允许空的语句段,因此;;是非法的。1语句组|chuncks复制代码代码如下:chunck::={stat}(应该是表示语句组后

Lua协程(coroutine)程序运行分析
这是一段分析lua协程(协同程序,coroutine)的代码,来自Luareferencemanualinterface(略有修改):复制代码代码如下:functionfoo(a)print("foo",a)returncoroutine.y

Lua脚本实现递归删除一个文件夹
复制代码代码如下:rmdirinquick-cocos2d-xwithlua.在使用quick-cocos2d-x做项目热更新的时候,我需要建立临时文件夹以保存下载的更新包。在更新完成后,我需要删除

Lua编程中的一些基本语法整理
Lua是相当简单易学,让我们开始创建第一个Lua程序!第一个Lua程序交互模式编程:Lua中提供了一个名为交互模式模式。在这种模式下,你可以键入一个接一个的指令,并得到

详解Lua中的变量相关知识点
变量不过是存储到区域项目可以操作的名称。它可以容纳不同类型的值,包括函数和表格。变量名可以由字母,数字和下划线。它必须以字母或下划线。大写和小写字母是不

Lua在各个操作系统中的开发环境配置教程
Lua开发环境设置如果愿意设置您的Lua编程语言环境中,需要用计算机上的以下两个软件,(a)文字编辑器,(b)Lua解释,以及(c)Lua编译器。文本编辑器这将被用来输入编写程

详解Lua中的数据类型
Lua是动态类型语言,所以变量没有类型,仅值有类型。值可以被存储在变量中,作为参数传递,并作为结果返回。在Lua中虽然我们没有变量的数据类型,但我们有类型的值。用

Lua中算术运算符的使用示例
下表列出了所有的Lua语言支持的算术运算符。假设变量A持有10和变量B持有20,则:例子试试下面的例子就明白了所有的Lua编程语言提供了算术运算符:复制代码代码如下:

Lua编程中使用嵌套循环的使用教程
Lua编程语言允许使用一个循环内嵌另一个循环。下文将介绍几个例子来说明这一概念。语法在Lua中嵌套循环语法语句如下:复制代码代码如下:forinit,max/minvalue,inc

Lua中关系运算符的使用教程
下表列出了所有的Lua语言支持的关系运算符。假设变量A持有10和变量B持有20则:示例试试下面的例子就明白了所有的Lua编程语言提供的关系运算符:复制代码代码如下:a

Lua中break语句的使用方法详解
当循环中遇到break语句,循环立即终止,程序控制继续下一个循环语句后面。如果您正在使用嵌套循环(即一个循环里面另一个循环),break语句将停止最内层循环的执行并开

Lua中的逻辑运算符使用详解
下表列出了所有的Lua语言支持的逻辑运算符。假设变量A持有true,而变量B持有false:示例试试下面的例子就明白了所有的Lua编程语言提供的逻辑运算符:复制代码代码如

详解Lua中的if语句的使用方法
if语句由一个或多个语句组成一个布尔表达式。语法Lua编程语言的if语句语法是:复制代码代码如下:if(boolean_expression)then--[statement(s)willexecuteifthebool

Lua中..和#运算符的使用方法
通过Lua语言支持其他运算符包括串联和长度。例子试试下面的例子就明白了在Lua编程语言提供的其他运算符:复制代码代码如下:a="Hello"b="World"print("Concatenati

详解Lua中if ... else语句的使用方法
if语句后面可以跟一个可选的else语句,当布尔表达式为假该语句执行。语法在Lua编程语言中的if...else语句的语法是:复制代码代码如下:if(boolean_expression)then-

详解Lua中的while循环语句的使用
在Lua编程语言中的while循环语句,只要给定的条件为真时将重复执行的目标语句。语法Lua编程语言中的while循环的语法是:复制代码代码如下:while(condition)dostate

Lua中if语句嵌套的使用教程
在Lua编程内嵌if-else语句,这意味着可以使用一个if或elseif在另一个语句if或elseif语句中。语法if语句的嵌套语法如下:复制代码代码如下:if(boolean_expression1)

Lua中for循环语句的使用教程
for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。语法Lua编程语言的for循环的语法是:复制代码代码如下:forinit,max/minvalue,incrementdost

Lua中的函数相关知识点整理汇总
函数是一组一起执行任务的语句。可以把代码放到独立的函数中。怎么划分代码功能之间的不同,但在逻辑上划分通常是让每个函数执行特定的任务。Lua语言提供了程序可

详解Lua中repeat...until循环语句的使用方法
与for和while循环不同,在循环的顶部测试循环条件,Lua编程语言的repeat...until循环检查循环底部的状态。repeat...until循环类似于while循环,不同的是do...while循

Lua中操作字符串的基本方法整理
字符串是一个字符序列,以及控制字符。字符串可以用三种形式被初始化,其中包括:单引号之间的字符双引号之间的字符]对于上述三种形式的一个例子如下所示。复制代码

Lua中的repeat...until循环语句使用教程
与for和while循环不同,在循环的顶部测试循环条件,Lua编程语言的repeat...until循环检查循环底部的状态。repeat...until循环类似于while循环,不同的是do...while循

详解Lua中的数组概念知识
数组是有序的对象的装置,它可以是包含含有多个行和列的行或多维阵列的集合的单个二维数组。在Lua中,数组是使用索引表与整数实现的。数组的大小是不固定的,它可以

浅析Lua中的迭代器
迭代器是一种结构,使能够遍历所谓的集合或容器中的元素。在Lua中,这些集合通常是指那些用于创建各种数据结构,如数组表。一般对于迭代器一个通用的迭代器提供的键

详解Lua中的元表概念
元表是一个表,有助于改变它连接到一个密钥集和相关的元方法的帮助下表的行为。这些元方法是强大的lua功能,如:更改/添加功能,以运算符表查看metatables当钥匙不在

在Lua中使用模块的基础教程
什么是模块?模块是一个像,可以使用需要加载并有包含表中的单个全局命名的库。该模块可包含若干函数和变量。所有这些函数和变量被包裹在以它作为一个命名空间的表

举例详解Lua中的协同程序编程
协同程序是协同的性质,可以把两个或更多的方法以可控制的方式执行。随着协同程序,在任何给定的时间,只有其协同程序运行之一,这在运行协同程序只能暂停其执行时,明

Lua cjson模块编译笔记及错误解决方法
使用文档:http://www.kyne.com.au/~mark/software/lua-cjson-manual.html下载地址:http://www.kyne.com.au/%7Emark/software/download/lua-cjson-2.1.0.tar.gz编

Lua中的文件I/O操作教程
Lua中I/O库用于读取和处理文件。有两种类型的文件操作,在Lua即隐含文件的描述符和明确的文件描述符。对于下面的例子中,我们将使用一个示例文件test.lua,如下图所

把Lua编译进nginx步骤方法
Lua编译进nginx的方法1、先安装lua-jit,网上说也可以下载lua,不过lua-jit效率比较高,地址:http://luajit.org/download.html我下的是2.0.3版本的下载解压后,直接m

浅析Lua编程中的异常处理
需要进行错误处理错误处理是必要的,因为真实世界中的操作通常需要使用复杂的操作,包括文件操作,数据库事务和web服务调用。没人关心错误的业务,涉及保密信息或金钱

使用Lua编写Nginx服务器的认证模块的方法
过去两天里,我解决了一个非常有趣的问题。我用一个nginx服务器作为代理,需要能够向其中添加一个认证层,使其能够使用外部的认证源(比如某个web应用)来进行验证,如

Lua内置的调试器用法详解
Lua提供了一个调试库,它提供了所有的基本功能,创造自己的调试器。即便如此,也没有内置的Lua调试器,Lua为开发者创建很多调试器是开源。调试Lua库中可用的功能列于

Lua和Nginx结合使用的超级指南
Nginx作为API代理有很多原因说明你为什使用nginx作为API代理。首先因为他是开源的;其次,Nginx有大量的安装基础,他背后有一个强大的社区支持,在性能方面也表现的非

简单讲解Lua中的垃圾回收机制
Lua使用基于被内置在Lua某些算法的垃圾收集自动内存管理。可以自动内存管理的结果,作为一个开发者:没有必要担心的对象分配内存。无需释放他们时,不再需要可将其设

Lua table中安全移除元素的方法
在Lua中,table如何安全的移除元素这点挺重要,因为如果不小心,会没有正确的移除,造成内存泄漏。引子比如有些朋友常常这么做,大家看有啥问题将test表中的偶数移除掉

浅谈Lua的面向对象特性
面向对象的特性类:类是可扩展的模板用来创建对象,提供状态的初始值(成员变量)和行为的实现。对象:它是类的实例并具有分配给自己独立的内存。继承:它是由变量和类

Lua 数学库的所有函数功能作用一览
math.pi为圆周率常量=3.14159265358979323846abs取绝对值math.abs(-15)15acos反余弦函数math.acos(0.5)1.04719755asin反正弦函数math.asin(0.5)0.52359877atan2x

Lua下基本的网络编程示例
Lua是高度灵活的语言,它往往是在多个平台,包括Web应用程序中使用。成立2004年的Kepler社区提供Lua的Web组件开放源码。虽然,也有使用Lua已经开发了其他的web框架,

Lua时间转化的几个小例子
1、把时间秒,转化为xx天xx时xx分xx秒的形式复制代码代码如下:--把时间秒,转化为xx天xx时xx分xx秒的形式functionconvertTimeForm(second)localtimeDay=math.floor

在Lua程序中使用MySQL的教程
导入MySQL我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成。在安装过程中,文件夹libsql包含数据库相关的文件。复制代码代码如下:mysql=require"l

Lua math.fmod使用时的小数问题
luamath.fmod使用注意小数:--Returnstheremainderofthedivisionofxbyy.functionmath.fmod(x,y)end//取模运算这里需要注意小数的问题,看下面两个例子:1、localx=m

在Lua程序中使用SQLite的教程
SQLite导入我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成。在安装过程中,文件夹libsql包含数据库相关的文件。复制代码代码如下:sqlite3=requir

Lua多行注释和取消多行注释的方法
1、lua多行注释:复制代码代码如下:--]2、取消多行注释:复制代码代码如下:---]

Lua中使用二维数组实例
在Lua中跟JS也是一样,没有二维数组的概念,但是二维数组对我们的开发又是极其的重要,当然,使用很多啦。谈谈在Lua中如何使用二维数组?原理,一维数组里面给一个嵌套

Lua中的变量和流控制入门学习
复制代码代码如下:num=42--所有的数字都是double。--别担心,double的64位中有52位用于--保存精确的int值;对于需要52位以内的int值,--机器的精度不是问题。复制代

举例简介Lua中函数的基本用法
复制代码代码如下:functionfib(n)ifn<2thenreturn1endreturnfib(n-2)+fib(n-1)end复制代码代码如下:--支持闭包及匿名函数:functionadder(x)--调用adder时,会创

举例讲解Lua中的Table数据结构
文中--两个横线开始单行的注释,--表示多行的注释--]]。复制代码代码如下:--Table=Lua唯一的数据结构;--它们是关联数组。--类似于PHP的数组或者js的对象,--它们是

举例说明Lua中元表和元方法的使用
table的元表提供了一种机制,可以重定义table的一些操作。之后我们会看到元表是如何支持类似js的prototype行为。复制代码代码如下:f1={a=1,b=2}--表示一个分数a/b

Lua中使用模块的一些基础知识
--两个横线开始单行的注释,--表示多行的注释--]]。复制代码代码如下:--假设文件mod.lua的内容是:localM={}localfunctionsayMyName()print('Hrunkner')endfunctio

深入探究Lua中的解析表达式
使用一个模式这个例子显示了一个建立和使用模式的程序,它非常简单但很完整:复制代码代码如下:locallpeg=require"lpeg"--matchesawordfollowedbyend-of-stringp=l

使用Lua来扩展C++程序的方法
介绍如果用户能够通过一些脚本语言来修改应用本身的行为,那么许多应用可以变得更适合用户使用。一些商业应用就提供了此类便利。例如MicrosoftOffice的VBA脚本编程

在Mac OS中安装Lua的教程
Lua是一个轻量级的编程语言,在游戏开发上使用非常多。在这篇文章中,我们将向你介绍在MacOSX系统上安装和使用最新版本的Lua5.2.1。如果你的系统已经安装了Rudix,只

浅谈chuck-lua中的多线程
chuck-lua支持actor模式的线程模型.可以通过cthread.new创建线程,然后通过cthread.sendmail向线程发送消息.与skynet这种框架不同,chuck-lua并不提供多线程的任务

Lua在windows下的安装及环境配置
环境:luaforwindows(lfW)主页:http://luaforwindows.luaforge.net/luaforwindows其实是一整套Lua的开发环境,它包括:LuaInterpreter(Lua解释器)LuaReferenceManua

Lua脚本语言基本语法快速入门教程
Lua语法与C语言有些相似也不太一样,写了语句学一下微笑--begina=--]"ha";print(a)ifa=="ha"thenprint("iftestpassed")elseprint("ifusedwrong")endb,c=2,3pr

C++中调用Lua配置文件和响应函数示例
Lua是脚本语言,最大的优势就是轻巧灵便,不用编译。当C的框架写好,只要更改lua的相应处理即可以更改功能,并且不用重新编译。以下是在C中调用Lua资源方法的示例程序

Lua编程示例(七):协同程序基础逻辑
co=coroutine.create(function()print("hi")end)print(coroutine.status(co))coroutine.resume(co)print(coroutine.status(co))print()co=coroutine.create

Lua中调用C++函数示例
Lua当然也能够调用C中定义的函数。一个平均数的例子,解释一下。下面给出的C++函数average()演示了如何接受多个参数且返回超过一个值。1.lua_gettop函数返回栈顶的

Lua编程示例(八):生产者-消费者问题
这个问题是比较经典的啦,基本所有语言的多线程都会涉及到,但是没想到Lua的这个这么复杂抓狂看了好长时间才算看明白,先上个逻辑图:开始时调用消费者,当消费者需要

Lua函数用法研究
在Lua基本语法快速入门中有涉及到函数的用法,但只是普通的应用,并没有深成次的研究一下,介于函数用的还是比较多的就专门做个专题研究一下~一、函数、变量的用法函

lua闭包的理解以及表与函数的几种表达方法
前一段时间,在学习lua语言时,看lua中文教程,在读闭包这一节时,看了好几遍,对闭包这个概念还是很模糊,不能清楚的理解它是怎么回事最近工作不是很忙,所以就自学了一

Lua编程示例(一):select、debug、可变参数、table操作、error
functiontest_print(...)fori=1,select("#",...)doprint(i,select(i,...))endendtest_print(11,12,13,14)print()print(debug.traceback())print()function

Lua调用自定义C模块
这是《Lua程序设计》中提到的,但是想成功执行,对于初学Lua的确没那么简单。这里涉及如何如何生成一个动态链接库so文件;Lua5.2中导出函数从LuaL_register变成了Lu

Lua编程示例(二):面向对象、metatable对表进行扩展
counter={count=0}functioncounter.get(self)returnself.countendfunctioncounter:inc()self.count=self.count+1endprint(counter.get(counter))cou

lua 基础教程
最近在看lua,觉得很有趣,发现没有最新版本的例子,所以自己就别人的博客里弄了源码,然后改成最新版本的luaCAPI.关于lua非常基础的就不介绍了,咱们就从简单的测试开

Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的
a={}fori=1,10doa={}forj=0,10doif(i%2==0)thena=0endendendprint(a)print(a)print()--双端队列List={}functionList.new()return

lua日志文件处理代码
目前我找到的文件夹的搜索工具,最多可以完成把搜索到的单行的内容,进行输出出来,或者进行一些简单的处理,但是不够灵活。因此就用lua自己写了个,可以完成自己定义

Lua编程示例(四):Lua标准库之表库、字符串库、系统库
tb1={"alpha","log","gamme"}print(table.concat(tb1,","))print(table.concat(tb1,"\n",nil,2))print()tb1='aaa'--返回索引值最大的值,并且计算小数print(ta

简单的Lua 连接操作mysql数据库的方法
win需要先安装luaforwindowslinux需要安装luarocks并luarocksinstallluasql-mysqlrequire"luasql.mysql"--创建环境对象env=luasql.mysql()--连接数据库conn=env:

Lua编程示例(五): C语言对Lua表的读取和添加
#include"stdafx.h"lua_State*L;voidload_lua(char*filename){L=luaL_newstate();luaL_openlibs(L);if((luaL_loadfile(L,filename)||lua_pcall(L,0,0,0))!

简单谈谈lua和c的交互
介绍lua和c的亲密接触,靠的是一个虚拟栈。lua通过这个虚拟栈来实现和c之间值的互传。栈上的每一个元素是一个lua值(nil,number,string...)。当lua调用c函数的时候

Lua编程示例(六): C语言调用Lua函数
C++端:#include"stdafx.h"lua_State*L;voidload_lua(lua_State**L,char*filename){*L=luaL_newstate();luaL_openlibs(*L);if(luaL_loadfile(*L,filename)|

lua文件操作详解
I/O库提供两种不同的方式进行文件处理:io表调用方式使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述。io表同样提供三种预定义的文件描述

Lua中的变量类型与语句学习总结
1.Lua类型1.1基本类型Lua是一种动态类型语言,没有类型定义的语法。Lua一共有8种基础类型:nil(空)、boolean(布尔)、number(数字)、string(字符串)、userdata(自定

Lua中函数与面向对象编程的基础知识整理
函数1.基础知识调用函数都需要写圆括号,即使没有参数,但有一种特殊例外:函数若只有一个参数且参数是字面字符串或table构造式,则圆括号可有可无,如dofile'a.lua',

深入解读Lua中迭代器与泛型for的使用
泛型for原理迭代器是一种可以遍历集合中所有元素的机制,在Lua中通常将迭代器表示为函数,每调用一次函数,就返回集合中“下一个”元素。每个迭代器都需要在每次成功

Lua Table转C# Dictionary的方法示例
table特性table是一个“关联数组”,数组的索引可以是数字或者是字符串,所有索引值都需要用""括起来;如果是字符串,还可以去掉引号和中括号;即如果没有[]括起,则认

解析Lua中的全局环境、包、模块组织结构
模块就是一个程序库,而包是一系列模块。Lua中可以通过require来加载模块,然后得到一个全局变量表示一个table。Lua将其所有的全局变量保存在一个被称为“环境”的

Lua语言新手简单入门教程
一、前言Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua可以应

Lua中基本的数据类型、表达式与流程控制语句讲解
1.Lua类型1.1基本类型Lua是一种动态类型语言,没有类型定义的语法。Lua一共有8种基础类型:nil(空)、boolean(布尔)、number(数字)、string(字符串)、userdata(自定

利用Lua定制Redis命令的方法详解
前言Redis作为一个非常成功的数据库,提供了非常丰富的数据类型和命令,使用这些,我们可以轻易而高效地完成很多缓存操作,可是总有一些比较特殊的问题或需求需要解决