Lua Note
初衷还是Unity
交互模式
- lua -i,- -i参数用于在运行完其他命令行参数后进入交互模式
- 不在交互模式下必须把表达式包在函数print的调用中
- 如果不想输出结果,可以在行末加上一个;
词法规范
- 标识符由任意字母、数字和下划线组成的字符串(不能以数字开头) 
- _+大写字母(特殊用途)
- _+小写字母(哑变量)
- 注释 - 单行注释--
- 多行注释
 --[[ 多行注释 ]]
 
- 单行注释
- 分隔符 - ;- 增加可读性,不是必须的
 
- 表达式之间的换行不起任何作用 
全局变量
- 无须声明即可使用
- 使用未经初始化的全局变量,得到的结果时nil
- nil赋值给全局变量时,Lua会回收该全局变量
类型和值
- Lua语言有8种基本类型 - nil(空)- nil赋值给全局变量时,则相当于将其删除(Lua会回收)
 
- boolean(布尔)- 除false和nil之外的所有值都为真(与C++差异)
- not运算符永远返回boolean类型的值- not nil– true
- not 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语言也支持可变长参数(…)