lua自定义迭代器
来源:互联网 发布:淘宝商城会员 编辑:程序博客网 时间:2024/06/07 05:11
自定义迭代器
#!/usr/bin/luatab = { i = 0, name = "Nihao", age = 23}function getName(self) self.i = self.i + 1 if self.i > 2 then return nil end return "name", self.nameendlocal meta = {__call = getName}function iter() return setmetatable(tab,meta)endfor i,v in iter() do print(i,v)end
- for循环初始化,初始化,调用iter()方法,获取,真正的迭代方法,和状态变量(可以没有)等.
- iter()方法,返回了一个加工了元表的表,这个表有一个元方法,
__call
,当把表作为方法调用时会调用这个方法比如: table_name() - for获取到真正的迭代方法后,开始调用获取第一个值,由上可知,它将调用getName方法.返回了两个值分别赋值给i,v
- 一直循环调用getName方法,直到返回的值为
nil
.
阅读全文
0 0
- lua自定义迭代器
- Lua自定义迭代器。
- lua自定义迭代器
- lua自定义不同的遍历方式(迭代器)
- cocos2dx lua自定义lua-binding
- 自定义lua输出
- lua自定义排序函数
- cocos2dx 自定义绑定lua
- Lua自定义面向对象
- lua--lua中的迭代器
- 与Lua交换自定义数据
- Lua自定义方式加载模块
- 2dx lua自定义类
- 【Cocos2d-x Lua】自定义TableView
- Lua 调用自定义C模块
- Lua调用自定义C++类
- Lua自定义方式加载模块
- 绑定自定义类到lua
- 感谢题主给我一个反思失败的机会。
- python基础-hashlib、logging、configparse
- Jersey
- CSS清除浮动方法大全
- 软件工程视频学习——第四章——概要设计
- lua自定义迭代器
- 7.6
- 小Q的无敌异或(第一问)
- PL/SQL Server连接64位Oracle数据库在界面中不出现Connect as的解决方法
- CodeForces770C【强连通分量+DFS序】
- ThreadLocal
- SpringBoot使用自定义注解+拦截器 实现日志记录
- Android搜狗输入法搜索栏
- 自定义一个类加载器