Lua学习笔记(1)——开始Lua

Lua

Lua 是一种小巧的脚本语言。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。本文是Lua学习笔记系列的开篇。

1. 引言

1.1 目标

Lua的目标是成为一个很容易嵌入其它语言中使用的语言。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括大话西游II、仙境传说、魔兽世界、轩辕剑外传汉之云、愤怒的小鸟等等。

1.2 特性

Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。Lua可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。

Lua是一种多重编程范式的程式设计语言:它只提供了很小的一个特性集合来满足不同编辑范式的需要,而不是为某种特定的编辑范式提供繁杂的特性支持。例如,Lua并不提供继承这个特性,但是你可以用元表来模拟它。

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

(以上引用自维基百科)

2 准备工作

2.1. 一些常用的链接

Lua for Windows下载地址

Lua在线手册

Lua中国开发者

2.2 程序块(chunk)

一个程序块就是一连串的语句或命令。

在命令行下执行“lua”即可启动解释器(安装完后一般已配置好环境变量PATH),退出解释器可调用操作系统库的exit函数os.exit()

有两种方式可以运行指定程序块:

  1. 命令行启动:用命令lua –i prog运行后,先运行文件prog中的程序块再进入交互模式。
  2. dofile函数:dofile("lib.lua")可加载lib.lua文件。

2.3 词法规范

Lua中的标识符可以由任意字母、数字和下划线构成的字符串,但不能以数字开头。应当尽量避免使用以一个下划线开头并跟大写字母的标识符,因为Lua将这类标识符保留用作特殊用途。

行注释:以--开头,块注释:将代码放入--[[--]]之间。

2.4 全局变量与解释器

全局变量不需要声明,只需将一个值赋予一个变量即可以创建。若一个变量未创建,则其值为nil,可以通过赋值nil来删除某个全局变量。

Lua解释器程序的用法为

lua [选项参数] [脚本[参数]]
  1. 参数-e:可以直接在-e后输入代码,需要用双引号括起,如lua –e "x=10"
  2. 参数-l:用于加载库文件,后接文件名。
  3. 参数-i:运行完其他命令行参数后进入交互模式。
  4. 通过修改_PROMPT全局变量可以改变命令提示符(默认_PROMPT=">"
  5. 全局变量arg可用来检索脚本的启动参数,如:lua –e "x=10" script abc
    arg[-3]="lua" arg[-2]="-e" arg[-1]="x=10" arg[0]="script" arg[1]="abc"

参考文献:电子工业出版社《Lua程序设计(第2版)》第1章

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器