程序块
lua执行的每段代码,都称为一个“程序块”。一个程序块也就是一连串的语句或命令。
几条连续的lua语句之间并不需要分隔符,但如果愿意,可以使用分号来分隔语句。
程序块可以是任意大小的。另外,lua通常还被作为一种数据描述语言来使用,几兆字节的程序块也是很常见的
。lua解释器对于大型程序块的处理不会有任何问题。
词法规范
lua中的标识符可以是由任意字母、数字和下划线构成的字符串,但不能以字数开头。通常保留标识符“_”(一
个下划线)作为“哑变量(Dummy Variable)”使用。
lua有大小写之分
行注释 两个连字符(--)开始,该注释一直延伸到一行的结尾。
块注释 以“--[[”开始,直至“]]”
全局变量
全局变量不需要声明。只需要将一个值赋予一个全局变量就可以创建了。访问一个为初始化的变量不会引发错
误,访问结果是一个特殊的值nil。通常没有必要删除一个全局变量。如果一个变量只有较短的生存周期,那么
就应该使用局部变量。但是,如果一定要删除某个全局变量的话,只需要将其赋值为nil。
解释器程序(the dtand-slone interpreter)
解释器是一个小型的程序,可以通过它来直接使用lua。几个主要选项参数。
如果代码文件的第一行以一个井号(#)开头,那么在加载该文件时,解释器将忽略这一行。这项特征是为了方
便UNIX系统中将Lua作为一种脚本解释器来使用。
#!/usr/local/bin/lua或#!/usr/bin/env lua
那么便可以直接调用脚本文件,而无须显示地调用Lua解释器了。
解释器程序的用法如下:lua [选项参数] [脚本[参数]]
所有这些参数都是可选的。就像刚才所所的,当不使用任何参数来启动解释器时,就会直接进入交互模式。
“-l”用于加载库文件;“-i”表示在运行完其他命令参数后进入交互模式。
在解释器执行其参数前,会先查找一个名为LUA_INIT的环境变量,如果找到了这个变量,并且内容为“@文件名
”,那么解释器会先执行这个文件。如路过LUA_INIT没有以“@”开头,那么解释器就会假设变量内容为lua代
码,并运行此代码。由于LUA_INIT可以很灵活地配置解释器,并且可以完全控制如何配置它。例如,可以预先
加载一个程序包(Package)、修改命令提示符和路径、定义函数、对函数惊醒改名或删除等。
在脚本代码中,可以通过全局变量arg来检索脚本的启动参数。例如 %lua 脚本 a b c
解释器在运行脚本前,会用所有的命令参数创建一个名为“arg”的table。脚本名称位于索引0上,它的第一个
参数实例中的a位于索引1,以此类推。而在“脚本”之前的所有选项参数则位于负数索引上。