1.1程序块
1.1.1程序块
lua执行的每段代码,都被称为一个“程序块”, 一个程序块也就是一连串的语句和命令。
在lua的语法中,代码中的换行不起任何作用。
程序块可以是任意大小的,其可以只包含一条语句,也可以由多条不同的语句构成。几兆字节的程序块是很常见的。
1.1.2交互模式
可以在交互模式下运行解释器。当不使用任何参数直接运行解释器时,便进入了交互模式。这种模式下,输入的每条命令都会被立刻执行。要退出交互模式,只需输入一个end-of-file控制字符(UNIX中为Ctrl+D,Dos中为Ctrl+Z),或者使用函数os.exit()。
在交互模式中,解释器通常会将每行内容作为一个·完整的程序块来解释,如果它检测到输入的内容不足以构成一个完整的程序块,那么它会等待输入更多的内容。
若使用命令行参数-i来启动lua解释器,那么解释器会在运行完指定程序块后进入交互模式,这对于调试及测试尤其有用。
1.1.3dofile函数
函数dofile,会立刻执行一个文件,如下有文件lib1.lua:
//lib1.lua
function norm(x,y)
return (x^2 + y ^2)^0.5
end
function twice(x)
return 2*x
end
那么在交互模式下有
dofile("lib1.lua")
n = norm(3.4,1.0) //直接使用lib1.lua中的函数
print(twice(n)) -->7.0880180586677
1.2词法规范
1.2.1变量名
lua中的标识符可以是由任意字母、数字、下划线构成的字符串,但不能以数字开头。
应该避免以一个下划线开头并跟着一个或多个大写字母的标识符,因为lua将这类标识符保留用作特殊用途。通常保留标识符“_”作为哑变量使用。
1.2.2注释
两个连字符“–”开始一个行注释;以“–[[”开始直至‘]]’结束,表示一个块注释
1.3全局变量
全局变量不需要声明,只需将一个值赋予一个全局变量就可以创建了。在lua中访问一个未初始化的全局变量不会引发错误,访问结果是一个特殊的值nil。
如果要将一个全局变量删除,只需要将其赋值为nil值。
1.4解释器程序
解释器时一个小型的程序,可以使用它来直接使用lua。
如果代码文件的第一行以一个“#”开头,那么在加载文件时,解释器将忽略这一行,这项特征是为了方便在UNIX系统中将Lua作为一种脚本解释器来使用,如下:
#:/user/local/bin/lua
解释器的用法如下:
lua [选项参数] [脚本[参数]]
选项参数如下:
1.-e 可以直接在命令行中输入代码
lua -e "print(hello world)"
2.-l用于加载库文件
lua -l a //加载库文件a
3.-i进入交互模式,在交互模式中,如果需要打印某个表达式的值,可以用等号开头并跟随一个表达式
a=30
= a //交互模式下输出a的值