lua学习笔记(四)
Lua数组
一维数组
1 | array={"Lua","Java","C++"} |
多维数组
1 | -- 初始化数组 |
Lua迭代器
一种对象,能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。
在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素
泛型for迭代器
泛型 for 在自己内部保存迭代函数,实际上它保存三个值:迭代函数、状态常量、控制变量
泛型for的执行过程
https://www.runoob.com/lua/lua-iterators.html
Lua迭代器类型
- 无状态的迭代器
- 多状态的迭代器
无状态的迭代器
不保留任何状态的迭代器,每一次迭代,迭代函数都是用两个变量(状态常量和控制变量)的值作为参数被调用,一个无状态的迭代器只利用这两个值可以获取下一个元素。如:ipairs
函数
多状态的迭代器
迭代器需要保存多个状态信息而不是简单的状态常量和控制变量,方法:
- 使用闭包(类似于lambda表达式,该表达式能包含函数本身以及外部引用变量,外部引用变量类似于lambda表达式中
[]
内捕获的外部变量) - 将所有状态信息封装到table内
1 | array={"Google","Apple"} |
Lua table(表)
table是一种数据结构,可以用于创建不同的数据类型:数组、字典等
table的特点:
- 使用关联型数组,可以用任意非nil的类型作为数组的索引
- 大小不固定,可以根据需要扩容
- 可以用于解决模块(module)、包(package)和对象(Object)
table的构造
1 | -- 初始化表 |
table操作
1 |
|