Lua Note
初衷还是Unity
交互模式
lua -i,-i参数用于在运行完其他命令行参数后进入交互模式- 不在交互模式下必须把表达式包在函数
print的调用中 - 如果不想输出结果,可以在行末加上一个
;
词法规范
标识符由任意字母、数字和下划线组成的字符串(不能以数字开头)
_+大写字母(特殊用途)_+小写字母(哑变量)注释
- 单行注释
-- - 多行注释
--[[ 多行注释 ]]
- 单行注释
分隔符
;- 增加可读性,不是必须的
表达式之间的换行不起任何作用
全局变量
- 无须声明即可使用
- 使用未经初始化的全局变量,得到的结果时
nil nil赋值给全局变量时,Lua会回收该全局变量
类型和值
Lua语言有8种基本类型
nil(空)- nil赋值给全局变量时,则相当于将其删除(Lua会回收)
boolean(布尔)- 除false和nil之外的所有值都为真(与C++差异)
- not运算符永远返回boolean类型的值
not nil– truenot false– true
number(数值)string(字符串)userdata(用户数据)- 允许把任意的C语言数据保存在Lua语言变量中
function(函数)thread(线程)table(表)
type函数- 获取一个值对应的类型
- 返回值永远是一个字符串
独立解释器
是一个可以直接使用Lua语言的小程序
源代码文件第一行以井号
#开头,那么解释器在加载文件时会忽略这一行,主要是为了方便在POSIX系统中将Lua作为一种脚本解释器来使用假设独立解释器位于
/usr/local/bin下#!/usr/local/bin/lua或
#!/usr/bin/env lua- 不需要显式调用Lua语言解释器也可以直接运行Lua脚本
编译器在运行代码前会创建一个名为arg的表
- 索引0中保存的内容为脚本名
arg[0]
- 索引1保存的内容为第一个参数
arg[1]
- 以此类推
- 索引0中保存的内容为脚本名
Lua语言也支持可变长参数(…)