Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的
文档选项 未显示需要 JavaScript 的文档选项 打印本页 将此页作为电子邮件发送 级别: 初级 Martin Streicher (martin.streicher@linux-mag.com), 首席编辑, Linux Magazine 2006 年 6 月 12 日 虽 然编译性编程语言和脚本语言各自具有自己独特的优点,但是如果我们使用这两种类型的语言来编写大型的应用程序会是什么样子呢
2008年12月9日 今天下午调试程序的时候,遇到了一件非常奇怪的事。弄清楚了之后,才发现原来是Lua中Module中自有环境的问题。 大体情况是这样的,我在主程序中设定的全局变量,在模块文件中可以访问到,并修改了这个全局变量的值,但是在模块调用返回后,再次使用这个全局变量的值,发现它没有被赋值,没有被改变。究其原因,发现是因为Lua的模块里面,采用了自己的全局环境(这个全局环境会将主程序中的全局
Lua的一个设计方针是简单,能不加入的语言特性就尽量不加入。于是,Lua中缺少了一些我们常用的语法。下面仅以C语言做参考。 缺少continue语句,虽然对逻辑实现没本质影响。但让我们在编程时,代码结构的写法有一些生硬的感觉,不灵活。 缺少了switch-case语法,仅用if-elseif-else来替代,在选项比较多的时候,代码很难看,而且效率很低。 没有逻辑运算符 AND, OR, NOT
元表概念 Lua中,面向对向是用元表这种机制来实现的。元表是个很“道家”的机制,很深遂,很强大,里面有一些基本概念比较难理解透彻。不过,只有完全理解了元表,才能对Lua的面向对象使用自如,才能在写Lua代码的高级语法时游刃有余。 首先,一般来说,一个表和它的元表是不同的个体(不属于同一个表),在创建新的table时,不会自动创建元表。 但是,任何表都可以有元表(这种能力是存在的)。 e.g. t
 引用:http://www.cppblog.com/flashboy/archive/2008/09/12/61701.html   Lua脚本语法说明(增加lua5.1部份特性)   Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。   所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua程序了。   在Lua中,一切都是变量,除了
  数据结构 链表的lua实现 仿照C++中list 实现 write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie vector我就没有用lua实现了,实现个list就很别扭了。事实上太仿照C++标准库的list了,所以可能没有很好的发挥lua的特点,有点要说的就是,lua中table的赋值都是引用赋值的浅拷贝,这点在实现list的时候发挥了关键作用,不
LuaBind --最强大的Lua C++ Bind 1 介绍 LuaBind 是一个帮助你绑定C++和Lua的库.她有能力暴露 C++ 函数和类到 Lua . 她也有 能力支持函数式的定义一个Lua类,而且使之继承自C++或者Lua. Lua类可以覆写从 C++ 基类 继承来的虚函数. 她的目标平台是Lua 5.0 ,不能支持Lua 4.0 . 她利用模板原编程技术实现.这意味着,你不需要额外的
http://blog.chinaunix.net/u/2326/showart_726571.html   lua中的require机制     为了方便代码管理,通常会把lua代码分成不同的模块,然后在通过require函数把它们加载进来。 现在看看lua的require的处理流程。 1、require机制相关的数据和函数     package.path:保存加载外部模块(lua中"模块"和
  1 - 介绍 Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的库形式提供。(所谓 Clean C ,指的 ANSI C 和 C++ 中共通的一个子集) 作为一个扩展式语言,Lua 没
lua的数据结构 table是Lua中唯一的数据结构,其他语言所提供的其他数据结构比如:arrays、records、lists、queues、sets等,Lua都是通过table来实现。   数组: a = {} -- new array for i=1, 1000 do     a[i] = 0 end    下标可以从任意数值开始 比如: arr = {} for a=0.1,10,0.1
下面的代码演示了在C++和lua脚本之间传递数据。 首先在C++中创建一个table,添加元素,然后放置到lua的全局表中。在lua脚本中可以使用C++创建的这个表。 然后在脚本中创建一个表,以脚本返回值的方式返回给C++,在C++中可以读取表中的值。   例子代码需要一个args.lua的lua文件,要手工创建,我把它放到了C盘根目录下。 // cpplua.cpp : Defines the
利用CEGUI+Lua实现灵活的游戏UI框架 新一篇: 游戏创造一种电影体验,很难吗? | 旧一篇: 基于组件方式的游戏UI架构设计           在上一篇文章中,介绍了一种基于组件方式的游戏UI架构设计方案,在这里,笔者将介绍如何利用CEGUI和Lua来实现这种灵活的框架。        CEGUI是一个兼容OpenGL、DirectX的优秀开源GUI库,关于她的介绍以及如何在Direct
   Lua学习笔记一 新一篇: Lua学习笔记二--在Lua中使用自己的C函数 | 旧一篇: 在VS2005中配置LUA   花了很长时间才算基本入门,期间走了不少的弯路,所以想记录下来,希望能方便后面的朋友。     前言 该系列文章将纪录我在学习Lua时碰到的一些问题和得出的心得体会,适合没有任何Lua基础的朋友看。我会不定期的将自己的学习整理成笔记,同时由于我是本月刚接触Lua,也是正在学
http://www.codingnow.com/2000/download/lua_manual.html
  A No-Frills Introduction to Lua 5.1 VM Instructions by Kein-Hong Man, esq. <khman AT users.sf.net> Version 0.1, 20060313   1 Introduction 这是一本关于Lua 5.1 虚拟机指令集的完全介绍。与Perl和Python相比,Lua的简洁性使得有人可以一窥它的内幕
Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问外包
  lua是一种动态类型语言, 不用特别声明变量以及指定类型, 首次赋值即为声明. 说到此点, 我觉得动态语言的这种特点与汇编倒是蛮象的: 不管你是什么类型, 对于底层而言, 它代表的就是一内存地址, 而操作符代表的就是对这些地址及存在于这些地址里的量进行操作而已.  闲话少说,  继续看pil, 今天的内容是: types and  values. 笔记内容: 1. lua提供了八种数据类型:
环境: lua for windows (lfW) 主页: http://luaforwindows.luaforge.net/ lua for windows其实是一整套Lua的开发环境,它包括: Lua Interpreter(Lua解释器) Lua Reference Manual(Lua参考手册) Quick Lua Tour (Lua快速入门) Examples (Lua范例) Libr
作者: Apex 发表于 2006-10-18 Lua is a powerful light-weight programming language designed for extending applications. Lua is also frequently used as a general-purpose, stand-alone language. Lua is free sof
作者: Apex 发表于 2006-10-29 .lua测试脚本 在编写第一个Lua程序之前,我们先编写一个.lua脚本以供调用,代码如下: 下载: test.lua -- test.lua print("Hello Lua !") 其中,两个连续的减号意味着这是一行注释。我们期望执行这个.lua脚本的结果是在屏幕上打印一串“Hello Lua !”的字符串。 提示:多行注释使用“--[[”开始,
【IT168 技术文档】在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。   Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。   在Lua中,一切都是变量,除了关键字。请记住这句话。   I. 首先是注释   写一个程序,总是少不了注释的。   在Lua中,你可以使用
Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问外包
下面的代码演示了在C++和lua脚本之间传递数据。 首先在C++中创建一个table,添加元素,然后放置到lua的全局表中。在lua脚本中可以使用C++创建的这个表。 然后在脚本中创建一个表,以脚本返回值的方式返回给C++,在C++中可以读取表中的值。   例子代码需要一个args.lua的lua文件,要手工创建,我把它放到了C盘根目录下。     // cpplua.cpp : Defines
  这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口、组件,随便你怎么叫),希望能用脚本来控制主程序的行为。这实际上也是一种把业务分离,用脚本控制的架构,可能有些人把这种脚本叫做业务引擎,工作流等。   为什么选择lua? 因为它是一个能和C/C++结合得很紧的脚本语言,而我们的程序是用VC++ 写的;另外
上周末开始看《Lua程序设计》第二版,目前体会到其中比较有趣的有两点,一是强大的table数据结构,另外就是coroutine。也许Lua中的coroutine是一种很好的设计模式,但我初步的体会还是没想到其他语言和场合能非常适合用到coroutine的场景。 一、简介 协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈,局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西
前段时间有空, 看了一小会lua,现在好像又还给了,脑袋空空,再次翻开lua,记录至此。   --[[ 学习lua,小程序,当作学习而已,程序可能没有什么实际意义 ]] -- 1.Hello world print( "---------1----------------") print("Hello world") --> Hello World -- 2.
在上文Lua coroutine 不一样的多线程编程思路 中想到coroutine的运行机制跟Java中的wait/notify很相似,所以写了一个简单程序比较一下。 源代码 Lua code co = coroutine.create(function(loops) for i = 1, loops do coroutine.yield() end e
lua的第二篇学习笔记   小程序+输出说明       --1. 逻辑比较 >,>=,<,<=, ==, ~= print( "---------1----------------") print(3.14 ~= math.pi) --> true x = x or math.pi -- 等价于 if not x then x = v end print(x) --2.
lua和其他语言一样,也有模块/包的概念,稍微有点不同的是,默认先从环境变量LUA_PATH中搜索lua文件,如果搜索不到,则从LUA_CPATH中搜索C文件。     对于我来说,时而去改变环境变量,则显得麻烦,并且在另外的环境中部署时还要修改环境变量,则显得不人性化,因此,觉得如下方式增加搜索路径比较好:  --将自定义包路径加入package的搜索路径中。也可以加到环境变量LUA_PATH中
Lua脚本语法说明(增加lua5.1部份特性)   Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。   所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua程序了。   在Lua中,一切都是变量,除了关键字。 I.  首先是注释   写一个程序,总是少不了注释的。   在Lua中,你可以使用单行注释和多行注释。   单行注释中,连续两