Lua隐藏摘要
-
Lua脚本入门 (发布于 2007-07-02)
使用流程 1. 函数的使用 以下程序演示了如何在Lua中使用函数, 及局部变量 例e02.lua -- functions function pythagorean(a, b) local c2 = a^2 + b^2 return sqrt(c2) end print(pythagorean(3,4)) 运行结果 5 程序说明 在Lua中函数的定义格式为: function 函数名(参数) ... end 与Pascal语言不同, end不需要与begin配对 ...查看
-
Lua学习笔记之 Getting Start (发布于 2007-07-02)
很多高深的人物都说过类似的话:"语言层面的东西, 都是表面的东西, 最核心的是设计模式, 是算法", 我完全赞同这句话, 但同时也完全赞同另一句话: "对于从事编码实践的我们, 还是应该踏实的多掌握一些编码层面的东西, 才更有利于理解核心的东西, 附带的, 也可以借以增加自信, 找回青春"... 前面写过的孔乙己系列, 是以底层的眼光看阳春白雪的C++(当然,还没写完), ...查看
-
Lua学习笔记之 Type and Values (发布于 2007-07-02)
lua是一种动态类型语言, 不用特别声明变量以及指定类型, 首次赋值即为声明. 说到此点, 我觉得动态语言的这种特点与汇编倒是蛮象的: 不管你是什么类型, 对于底层而言, 它代表的就是一内存地址, 而操作符代表的就是对这些地址及存在于这些地址里的量进行操作而已. 闲话少说, 继续看pil, 今天的内容是: types and values. 笔记内容: 1. lua提供了八种数据类型: n ...查看
-
LUA学习笔记3 - Compilation, Execution, and Errors (发布于 2007-07-02)
Compilation, Execution, and Errors 前面我们介绍过dofile函数, 其实dofile的实现如下: function dofile (filename) local f = assert(loadfile(filename)) return f() end loadfile函数很灵活, 我们可以多次调用loadfile的返回结果来反复执行一段代码. 但是如果出错loa ...查看
-
LUA学习笔记2-Iterators and the Generic for (发布于 2007-07-02)
Iterator是一种允许你遍历一个集合中元素的结构. 在Lua中, 我们可以用function实现iterator, 每次调用这个函数, 它都返回集合中的下一个元素. 一个iterator需要保留一些用来遍历的信息, 例如当前元素的位置以及什么时候结束. Closure的机制非常适合这个工作. 遍历所需的环境变量可以保存在upvalue中, 这样每一次调用这个closure, 他都返回遍历某一个list的iterator. 由于这样的Closure ...查看
-
LUA学习笔记1-Functions (发布于 2007-07-02)
Function Description 在LUA中, Function和Number, String一样属于基本类型. 凡是基本类型可以出现的地方Function一样可以出现. 这意味着Function可以存储在变量中,可以作为另一个Function的参数传递,也可以作为某个Function的返回值. 可以把Function德名字视为一种变量,它指向具体的Function实现. 这样的机制给程序设计带来了极大的弹性. 一个程序可以重写某个Function以便给他增加功 ...查看
-
Lua脚本语言入门(目前魔兽使用的可以写在宏内的语言) (发布于 2007-07-02)
作者: 沐枫 在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。 Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 在Lua中,一切都是变量,除了关键字。请记住这句话。 I. 首先是注释 写一个程序,总是少不了注释的。 ...查看
-
Lua文件处理 (发布于 2007-07-02)
一。文件读存: -- 似乎不支持大文件(不能超过9k?): function opensavetest() local file = io.open("c:\\in.lua", "r"); if(file) then local data = file:read("*a"); -- i've also tried "*all" as described in PIL file:close(); file = io.open("c:\\o ...查看
-
Lua 语言的简单介绍 (发布于 2007-07-02)
1. Lua的特点 Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。 Lua最著名的应用是在暴雪公司的网络游戏WOW中。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普 ...查看
-
关于LUA中的随机数问题 (发布于 2007-07-02)
也许很多人会奇怪为什么使用LUA的时候,第一个随机数总是固定,而且常常是最小的那个值,下面我就简要的说明一下吧,说得不好,还请谅解。我现在使用的4.0版本的LUA,看的代码是5.0的,呵呵 LUA4.0版本中的自带函数库中有两个关于随机数的函数,一个是random,一个是randomseed。random有两个参数,用来设置随机数的范 ...查看
-
向 lua 虚拟机传递信息 (发布于 2007-07-02)
??当程序逻辑交给脚本跑了以后,C/C++ 层就只需要把必要的输入信息传入虚拟机就够了。当然,我们也需要一个高效的传递方法。 ?? ??以向 lua 虚拟机传递鼠标坐标信息为例,我们容易想到的方法是,定义一个 C 函数 get_mouse_pos 。当 lua 脚本中需要取得鼠标坐标的时候,就可以调用这个函数。 ?? ??但这并不是一个好方法,因为每次获取鼠标坐标,都需要在虚拟机和 native code 间做 ...查看
-
在C++中集成Lua脚本 (发布于 2007-07-02)
为什么要用Lua作脚本? 使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中,确实有一些不方便——用落木随风网友的话来说,就是"就象用汇编"。当然,现在你不用再这么辛苦了,因为你可以使用LuaWrapper For C++。使用这个工具,在C++中集成Lua脚本就是轻而易举的事。你原有的C++函 ...查看
-
Lua脚本入门 (发布于 2007-07-02)
在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。 Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 在Lua中,一切都是变量,除了关键字。请记住这句话。 I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你 ...查看
-
学习Lua --- Lua与C交互入门 (发布于 2007-07-02)
1.简介 Lua与C/C++结合是很紧密的, Lua与C++交互是建立在Lua与C的基础上的, 所 以偶先从Lua与C讲起. 正如第一讲所说, 运行Lua程序或者说调用Lua主要有两种方式: * 通过命令行执行"Lua"命令 * 通过Lua的C库 虽然此前偶们一直用第一种方式, 但偶要告诉你, 通过Lua的C库执行才是游戏中 常用的方式. 2.Lua的C库 Lua的C库可以做为Shared Library调用, ...查看
-
使用 Lua 编写可嵌入式脚本 (发布于 2007-07-02)
虽然编译性编程语言和脚本语言各自具有自己独特的优点,但是如果我们使用这两种类型的语言来编写大型的应用程序会是什么样子呢?Lua 是一种嵌入式脚本语言,它非常小,速度很快,功能却非常强大。在创建其他配置文件或资源格式(以及与之对应的解析器)之前,请尝试一下 Lua。 尽管诸如 Perl、Python、PHP 和 Ruby 之类的解释性编程语言日益被 Web 应用程序广泛地采纳 —— ...查看
-
Lua简介 (发布于 2007-07-02)
定义 LUA程序设计语言是一个简单的、轻量级的、可扩展的脚本语言。LUA读作/'lua/,是葡萄牙语中"Luna"(月亮)的意思。 用途 LUA的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。 很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括著名游戏魔兽世界。 可以说是魔兽世界让Lua火了 ...查看
-
Lua 入门 (发布于 2007-06-22)
在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。 Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 在Lua中,一切都是变量,除了关键字。请记住这句话。 I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你可 ...查看
-
学习笔记 : Lua 编程技巧 (发布于 2007-06-22)
应该尽量使用 local 变量而非 global 变量。这是 Lua 初学者最容易犯的错误。global 变量实际上是放在一张全局的 table 里的。global 变量实际上是利用一个 string (变量名作 key) 去访问这个 table 。虽然Lua5 的 table 效率很高 ,但是相对于 local 变量,依然有很大的效率损失。local 变量是直接通过 Lua 的堆栈访问的。有些 global 变量的访问是不经意的,比如我们有双重循环 ...查看
-
Lua 语言和C集成调研小结 (发布于 2007-06-22)
1. Lua的特点 Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。 Lua最著名的应用是在暴雪公司的网络游戏WOW中。 Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普 ...查看
-
Lua的function、closure和upvalue (发布于 2007-06-22)
Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问外包函数已经创建的所有 ...查看
-
Lua脚本语法说明 (发布于 2007-06-22)
Lua脚本语法说明(增加lua5.1部份特性) Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 所以,我只简单的归纳一下Lua的一些语法规则,使用起来方便好查就可以了。估计看完了,就懂得怎么写Lua程序了。 在Lua中,一切都是变量,除了关键字。 I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你可以使用单行注释和多行注释。 ...查看
-
通过例子学习Lua(4)--函数的调用 (发布于 2007-06-22)
1.不定参数 例e07.lua -- Functions can take a -- variable number of -- arguments. function funky_print (...) for i=1, arg.n do print("FuNkY: " .. arg[i]) end end funky_print("one", "two") 运行结果 FuNkY: one FuNkY: two 程序说明 * 如果以 ...查看
-
通过例子学习Lua(3)----Lua数据结构 (发布于 2007-06-22)
1.简介 Lua语言只有一种基本数据结构, 那就是table, 所有其他数据结构如数组啦, 类啦, 都可以由table实现. 2.table的下标 例e05.lua -- Arrays myData = {} myData[0] = “foo” myData[1] = 42 -- Hash tables myData[“bar”] = “baz” -- Iterate through the -- s ...查看
-
通过例子学习Lua(2)---Lua流程控制 (发布于 2007-06-22)
1. 函数的使用 以下程序演示了如何在Lua中使用函数, 及局部变量 例e02.lua -- functions function pythagorean(a, b) local c2 = a^2 + b^2 return sqrt(c2) end print(pythagorean(3,4)) 运行结果 5 程序说明 在Lua中函数的定义格式为: function 函数名(参数) ... end 与Pascal语言不同 ...查看
-
通过例子学习Lua(6)--C/C++中用Lua函数 (发布于 2007-06-22)
1.简介 偶们这次主要说说怎么由Lua定义函数, 然后在C或者C++中调用. 这里偶们 暂不涉及C++的对象问题, 只讨论调用函数的参数, 返回值和全局变量的使用. 2.程序 这里偶们在e12.lua里先定义一个简单的add(), x,y为加法的两个参数, return 直接返回相加后的结果. 例e12.lua -- add two numbers function add ( x, y ) return x ...查看
-
通过例子学习Lua(1)----HelloWorld (发布于 2007-06-22)
1.前言 偶最近在学习Lua, 所以写出心得和大家共享, 争取一天写一篇, 嘿嘿. 才开始学所以内容很浅, 希望大家包涵. Lua是一种完全免费的脚本语言, 可以和C/C++语言紧密结合, 它的官方网站在http://www.lua.org. 在网站上可以下载到lua的源码, 没有可 执行版本, 不过不用担心, 因为lua源码可以在任何一种C/C++的编译器上编译. 如果要学习 ...查看
-
通过例子学习Lua(7)--调用C/C++函数 (发布于 2007-06-22)
1.前言 上次偶说到从C/C++中调用Lua的函数, 然后就有朋友问从Lua中如何调用C/C++的 函数, 所以偶们这次就来说说这个问题. 首先偶们会在C++中建立一个函数, 然后 告知Lua有这个函数, 最后再执行它. 另外, 由于函数不是在Lua中定义的, 所以 无法确定函数的正确性, 可能在调用过程中会出错, 因此偶们还会说说Lua出错处 理的问题. 2.Lua中调用C函数 ...查看
-
通过例子学习Lua(5)--Lua与C的交互 (发布于 2007-06-22)
1.简介 Lua与C/C++结合是很紧密的, Lua与C++交互是建立在Lua与C的基础上的, 所 以偶先从Lua与C讲起. 正如第一讲所说, 运行Lua程序或者说调用Lua主要有两种方式: * 通过命令行执行"Lua"命令 * 通过Lua的C库 虽然此前偶们一直用第一种方式, 但偶要告诉你, 通过Lua的C库执行才是游戏中 常用的方式. 2.Lua的C库 ...查看
-
Lua: technical note 11 (发布于 2007-06-22)
Technical Note 11 Require revisited: Import by Wim Couwenberg This LTN depends on "loadfile," introduced in Lua 5.0 Abstract Lua 4.1 introduced the "require" function that loads and runs a file unless it already loaded. Lua 5.0 offers require as a built-in function in its base lib. The require command together with LTN 7 "Mod ...查看
-
Lua: technical note 10 (发布于 2007-06-22)
Technical Note 10 Weave your own description languages by Gavin Wraith This technical note does not fit in our style. There is a good reason for this, because it is about constructing HTML files (among other things) with Lua. Read the original page sent by Gavin. The Weave program has been updated comprehensively since it was originally described her ...查看
-
Lua: technical note 9 (发布于 2007-06-22)
Technical Note 9 Creating Strings Piece by Piece by Roberto Ierusalimschy Abstract In Lua, "accumulation" of string results (that is, loops over a code like s = s..x ) can be quite expensive. This note describes an efficient way to create a string piece by piece in Lua. The Problem Suppose you are building a string piecemeal, for instance reading ...查看
-
Lua: technical note 8 (发布于 2007-06-22)
Technical Note 8 A fast multiple-inheritance tag method implementation in Lua by David Jeske Abstract This note explains a multiple-inheritance style class system based on Lua's tag methods which provides performance similar to languages such as Python. The Problem Sometimes it's desirable to have an inheritance style class system to compose Lua ...查看
-
Lua: technical note 7 (发布于 2007-06-22)
Technical Note 7 Modules & Packages by Roberto Ierusalimschy Abstract This note describes a simple way to implement modules (also called packages) in Lua. The proposed method provides namespaces, privacy, and some other benefits. The Problem Many languages provide mechanisms to organize their space of global names, such as modules in Modula, pac ...查看
-
Lua: technical note 6 (发布于 2007-06-22)
Technical Note 6 Weak references: implementation and use in Lua by John Belmonte Overview In computer languages such as Lua that employ garbage collection, a reference to an object is said to be weak if it does not prevent collection of the object. Weak references are useful for determining when an object has been collected and for caching objects w ...查看
-
Lua: technical note 5 (发布于 2007-06-22)
Technical Note 5 A template class for binding C++ to Lua by Lenny Palozzi Abstract This note explains a method of binding C++ classes to Lua. Lua does not support this directly, but it does provide a low level C API and extension mechanisms that makes it possible. The method I describe makes use of Lua's C API, C++ templates, and Lua's extension mec ...查看
-
Lua: technical note 4 (发布于 2007-06-22)
Technical Note 4 A thin API for interlanguage working, or Lua in Four Easy Calls by Reuben Thomas Abstract The obvious way to make Lua interwork with language L is to implement the Lua API in L, but this is daunting for the implementor, and burdens the L programmer with a verbose syntax. A simpler solution is to implement just lua_open, lua_close, l ...查看
-
Lua: technical note 3 (发布于 2007-06-22)
Technical Note 3 Interfacing Lua to an operating system by Gavin Wraith This note explains how to extend Lua to take advantage of system calls. Although my own efforts have been confined to an operating system that may be unknown to most readers (RISC OS), I believe that the principles involved are fairly universal. I write this note in the hope of ...查看
-
Lua: technical note 2 (发布于 2007-06-22)
Technical Note 2 Minimal Lua 4.0 installations This note explains how to build Lua for environments that do not have much memory, such as embedded systems. This is a version of Technical Note 1, updated for Lua 4.0. As explicitly stated in the "about" page, one of the goals of our Lua implementation is low embedding cost. This means two things: fir ...查看
-
Lua: technical note 1 (发布于 2007-06-22)
Technical Note 1 Minimal Lua 3.2 installations This note explains how to build Lua for environments that do not have much memory. As explicitly stated in the welcome page, one of the goals of our Lua implementation is low embedding cost. This means two things: first, it should be easy to embed Lua in an application; second, the additional code for ...查看
-
Lua: technical note 0 (发布于 2007-06-22)
Technical Note 0 How to write a Lua Technical Note There are no official guidelines for writing a Lua Technical Note. You may read Author's Guide and On the Elements of a Technote, from the Macintosh Technical Notes, but read these documents just for an idea of what technical notes look like; Lua Technical Notes are much more informal. Below is a p ...查看

