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语言也支持可变长参数(…)