Lua入门
基本类型
nil
type(val) == “nil”
布尔值
false和nil为false
0为true
number
双精度,表示所有数字
string
‘和”都可以表示字符串
[[]]可以表示一块字符串
+表示数学上的操作
..表示字符串上的操作
#表示字符串长度
table
可以是数组,也可以是字典
索引从1开始
function
可存在变量中
匿名函数
thread
线程和协程
userdata
自定义类型
struct和指针
变量
全局变量无需声明
变量全是全局变量,除非local声明为局部变量
局部变量作用域
同时赋值时,左右个数不匹配时会忽略or用nil补足
当table的索引为字符串时可用.操作符访问
多值赋值时仅值传递,不会变量传递
回收全局变量
循环
while … do … end
for i=begin, end, step do … end
begin, end, step一次性求值
pairs和ipairs:ipairs遇到nil则返回,ipairs从1开始遍历
未完
流程控制
if … then … end
if … then … else … end
函数
可有多个返回值
…表示可变参数
select(“#”,…) 来获取可变参数的数量
select(3,…) 表示从3开始到结束的所有参数列表
固定参数在变长参数前
运算符
//和/://表示整除,lua5.3后才有
..表示字符串拼接
#表示长度
运算符优先级
字符串
string.len
有中文用utf8.len
upper(), lower(), find(), reverse()
sub()
未完
数组
索引可为负数
迭代器
未完
table
当我们为 table a 并设置元素,然后将 a 赋值给 b,则 a 与 b 都指向同一个内存。如果 a 设置为 nil ,则 b 同样能访问 table 的元素。
table的操作
不能直接获得table的长度
模块和包
table创建模块
require调用模块