Chunks是一系列语句,Lua执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunks
每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用;
假定一个文件 a 内有单个语句 x=1;另一个文件 b 有语句 print(x)
prompt> lua -la -lb
将在一个 Chunk 内先运行 a 然后运行 b,最后直接进入交互模式。
-- file 'lib1.lua'
function norm (x, y) local n2 = x^2 + y^2 return math.sqrt(n2)
end
function twice (x) return 2*x
end
> dofile("lib1.lua") -- load your library > n = norm(3.4, 1.0)
> print(twice(n)) --> 7.0880180586677
Lua 是大小写敏感的.
注释:单行注释:-- 多行注释:--[[ --]]
1.4 命令行方式
-e:直接将命令传入 Lua
prompt>lua-e"print(math.sin(12))" -->-0.53657291800043
-l:加载一个文件.
-i:进入交互模式.
_PROMPT 内置变量作为交互模式的提示符
prompt> lua -i -e "_PROMPT=' lua> '" lua>
Lua 的运行过程,在运行参数之前,Lua 会查找环境变量 LUA_INIT 的值,如果变 量存在并且值为@filename,Lua 将加载指定文件。如果变量存在但不是以@开头,Lua 假定 filename 为 Lua 代码文件并且运行他。利用这个特性,我们可以通过配置,灵活的 设置交互模式的环境。可以加载包,修改提示符和路径,定义自己的函数,修改或者重 名名函数等。
在运行以前,Lua 使用所有参数构造 arg 表。脚本名索引为 0,脚本的参数从 1 开始 增加。脚本前面的参数从-1 开始减少。
prompt> lua -e "sin=math.sin" script a b
arg 表如下:
prompt> lua -i -e "_PROMPT=' lua> '" lua>
arg[-3] = "lua" arg[-2] = "-e" arg[-1] = "sin=math.sin" arg[0] = "script" arg[1] = "a" arg[2] = "b"