Lua是嵌入式语言,常作为拓展嵌入在C/C++等程序中,Lua当然也是一个独立的语言。在Lua官网下载源码后编译lua.c文件可生成可执行文件lua,这就是作为独立语言时Lua的解释器(或者通过MAKEFILE生成)。独立Lua解释器包括所有标准库,包括调试库。
独立解释器的参数有
1. -e 可以直接在命令行输入代码;
2. -l 加载库,效果与dofile函数类同。如需加载的库文件为MyLua.lua ,参数里写 -lMyLua 或者 -l MyLua都是没问题的。
库文件运行的返回值存储在全局变量 [库文件名] 中,如MyLua中,当库文件没有返回值时,变量赋值为true(并不是nil)。
和dofile相同,库文件名也是不区分大小写的!
3. -i 运行脚本后进入交互模式,此功能方便与调试。
4. -v 打印版本信息。
5. -E 忽略环境变量 LUA_INIT_5_3 / LUA_INIT 和 LUA_PATH和LUA_CPATH的值。
如不忽略则解释器会运行LUA_INIT_5_3 中的Lua代码,变量不存在则查找 LUA_INIT ,都不存在则运行文件名参数。环境变量以@开头则认为环境变量中的是一个文件地址。
arg变量:向解释器传入的参数都会存在arg变量中,这个预设的全局变量的类型是表。arg[0] 存储的是执行的文件地址或 -e参数对应的指令。arg[-1]、arg[-2]等存储之前的调用内容,如 lua -e 之类的。arg[1]、arg[2] 存储的是除 -e、-e对应的语句、文件名以外的变量,按传入顺序存储。
特别的,也可以用可变长参数(…)来得到arg[1]、arg[2]……等传入参数。
--判断值是否为boolean类型
function IsBoolean(v)
return v==true or v==false
end
local a = 3
local b = true
local c = nil
print('---------->'..tostring(IsBoolean(a)))
print('---------->'..tostring(IsBoolean(b)))
print('---------->'..tostring(IsBoolean(c)))