Lua语言语法讲解的一点准备文章

作者: NickYang 分类: 程序开发 发布时间: 2011-01-03 15:55

(本文主要是对Lua的一点小解释和对后面的准备,如果读者不喜欢,可以略过……)

什么是Lua语言?

Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用标准C语言编写并以源 代码形式开放,编译后仅仅一百餘K,可以很方便的嵌入别的程式裡。和许多”大而全”的语言不一样,网路通讯、图形界面等都没有預設提供。但是Lua可以很 容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。事实上,现在已经有很多成熟的扩展模块可供选用。

Lua是一种多重编程范式的程式设计语言:它只提供了很小的一个特性集合来满足不同编輯范式的需要,而不是为某种特定的编輯范式提供繁杂的特性支援。例如,Lua并不提供继承这个特性,但是你可以用元表来模拟它。诸如名字空间、类这些概念都没有在语言基本特性中实现,但是我们可以轻易的用表结构(Lua唯一提供的复杂数据结构)轻易模拟。Lua可以在运行时随时构造出一个函数,并把它看作一个对象(正是所谓的first class function),这个特性可以很好的满足函数式编程的需要。这是提供了这些基本的元特性,我们可以任意的对语言进行自需的改造。

Lua原生支援的数据类型非常之少,它只提供了 数字(缺省是双精度浮点数,可配置)、布尔量、字符串、表、子程序、协程(coroutine)以及用户自定义数据这几种。但是其处理表和字符串的效率非常之高,加上元表的支援,我们可以高效的模拟出需要的复杂数据类型(比如集合、数组等)。

Lua是一个动态弱类型语言,支援增量式垃圾收集策略。有内建的,与操作系统无关的协作式多线程(coroutine)支援。

Lua有什么优点?

Lua语言是一个巴西人发明的,98年开始制定,最后一个版本5.1.4是08年发布的。不过到了暴雪做魔兽世界和魔兽争霸时才将其发扬光大了,真正成了当之无愧的“脚本之王”。

其优越性主要表现为以下几个方面:

① 可扩展性。Lua的扩展性非常卓越,以至于很多人把Lua用作搭建领域语言的工具(注:比如游戏脚本)。Lua被设计为易于扩展的,可以通过Lua代码或者C代码扩展,Lua的很多功能都是通过外部库来扩展的。Lua很容易与C/C++、java、fortran、Smalltalk、Ada,以及其他语言接口。

② 简单。Lua本身简单,小巧;内容少但功能强大,这使得Lua易于学习,很容易实现一些小的应用。他的完全发布版(代码、手册以及某些平台的二进制文件)仅用一张软盘就可以装得下。

③ 高效率。Lua有很高的执行效率,统计表明Lua是目前平均效率最高的脚本语言。

④ 与平台无关。Lua几乎可以运行在所有我们听说过的系统上,如NextStep、OS/2、PlayStation II (Sony)、Mac OS-9、OS X、BeOS、MS-DOS、IBM mainframes、EPOC、PalmOS、MCF5206eLITE Evaluation Board、RISC OS,及所有的Windows和Unix。Lua不是通过使用条件编译实现平台无关,而是完全使用ANSI (ISO) C,这意味着只要你有ANSI C编译器你就可以编译并使用Lua。

什么人适合使用Lua?

Lua使用者分为三大类:使用Lua嵌入到其他应用中的、独立使用Lua的、将Lua和C混合使用的。

第一:很多人使用Lua嵌入在应用程序,比如CGILua(搭建动态网页)、LuaOrb(访问CORBA对象。这些类型用Lua-API注册新函数,创建新类型,通过配置Lua就可以改变应用宿主语言的行为。通常,这种应用的使用者并不知道Lua是一种独立的语言。例如:CGILua用户一般会认为Lua是一种用于Web的语言。

第二:作为一种独立运行的语言,Lua也是很有用的,主要用于文本处理或者只运行一次的小程序。这种应用Lua主要使用它的标准库来实现,标准库提供模式匹配和其它一些字串处理的功能。我们可以这样认为:Lua是文本处理领域的嵌入式语言。

第三:还有一些使用者使用其他语言开发,把Lua当作库使用。这些人大多使用C语言开发,但使用Lua建立简单灵活易于使用的接口。

本书面向以上三类读者。书的第一部分阐述了语言的本身,展示语言的潜在功能。我们讲述了不同的语言结构,并用一些例子展示如何解决实际问题。这部分既包括基本的语言的控制结构,也包括高级的迭代子和协同。

第二部分重点放在Lua特有的数据结构——tables上,讨论了数据结构、持久性、包及面向对象编程,这里我们将看到Lua的真正强大之处。

第三部分介绍标准库。每个标准库一章:数学库、table库、string库、I/O库、OS库、Debug库。

如何使用Lua?

1.从Lua官方网站下载lua源码包,最新版本下载地址为:

2.下载了之后,里面的结构为:doc(帮助文档) etc(一些额外补充的文件) src(Lua语法源码) test(测试使用的例子)

3.网上有的地方提供Lua.exe和Luac.exe,用来执行Lua脚本和将编写的Lua脚本打包成二进制文件,加快编译,同时也可以检查你写的脚本的正确性。还有的地方提供其他的工具等等。

有人说这种方法可以得到Lua.exe luac.exe,我自己试了一下,在Windows下不可以的,各位请自己试下,如果生成不了那两个文件,可以下载LuaBind或者LuaPlus,里面有编译好的文件。方法如下:

解压文件,比如解压到 D:/lua-5.1.2 文件夹内(以下均以此路径为例)。

D:/lua-5.1.2 内,存在名为 /etc 的子目录。在此目录下找到 luavs.bat 文件,并将它复制到 D:/lua-5.1.2 中。

双击执行 luavs.bat 批处理文件,如果执行成功,在 D:/lua-5.1.2/src 文件夹中会存在 luac.exe lua.exe两个文件。

D:/lua-5.1.2/src 加入到系统路径中

4.Lua文件的编辑器,确切的说Lua没有一个标准的编辑器,不像其他语言那样都有一个合适的工具来编辑文本,不过Lua文件可以随便使用一款文本编辑器来编辑,有一些朋友自己开发的编辑器,像LuaEdit什么的,不过个人觉得使用NotePad++就足够了,免费开源,支持绝大数编程语言着色,非常好用,以后有机会会详细介绍该款编辑器的。

5.补充说明一下,很多人可能要问,那这个怎么在Windows系统上配置?再次说明,lua是一门语言,其配置就是将其加入到系统路径中,然后将写出来的脚本用lua.exe测试一下就行了

好了,下来我们就要正式开始学习lua的语法了,前面的可能没什么用,但是了解一些总是没什么坏处。下文开始讲Lua的语法了,希望大家关注!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

3条评论
  • 厦门SEO

    2011 年 10 月 19 日 10:37

    文章写的真好,回帖是一种美德

    潜水 Internet Explorer 11 Windows 7
  • minority scholarship

    2011 年 1 月 25 日 22:25

    I just added your blog site to my blogroll, I pray you would give some thought to doing the same.

    潜水 Internet Explorer Windows Server 2003
    1. eliteYang

      2011 年 1 月 26 日 18:53

      sorry, i donot see my link in your website, and I donot know what is your website type !

      大师 Chrome浏览器 Windows XP

发表评论

电子邮件地址不会被公开。 必填项已用*标注