lua 之for循环 疑问。
来源:互联网 发布:西安九索数据怎么样 编辑:程序博客网 时间:2024/05/21 16:22
我看的lua中文教程,好像是5.1得把。
下的那个编译器也是5.1 lua for windows
看到for循环这里。 一直不是很清楚。
书里写的是
t = {1,9,5,20}
for k in pairs(t) do print(k) end
说这样可以遍历t.
但是我写到编译器里面就编译不了,报错。
将他改为
t = {1,9,5,20}
for _,k in pairs(t) do print(k) end
就可以编译了。
具体原因是for循环应该标准的有3个语句, 在这里只有一句,编译不了,加一个匿名的变量,就可以通过。
是作者翻译的时候写错了? 还是这是正确的? 版本问题呢。
network = {{name = "arraial",IP = "192.168.1.1"},
{name = "lua", IP = "192.168.1.106"},
{name = "derain", IP = "192.168.1.100"}}
table.sort(network,function (a,b) return (a.name < b.name) end)
for _,v in pairs(network) do print(v.name,v.IP) end
lua里面 貌似函数的写法很独特啊,匿名函数很给力。
network = {{name = "arraial",IP = "192.168.1.1"},
{name = "lua", IP = "192.168.1.106"},
{name = "derain", IP = "192.168.1.100"}}
table.sort(network,function (a,b) return (a.name < b.name) end)
for _,v in pairs(network) do print(v.name,v.IP) end // 这里为什么一定要在for后面加一个匿名变量
function list_iter(t)
local i = 0
local n = table.getn(t)
return function ()
i = i + 1
if i <= n then return t[i] end
end
end
t = {10,20,30}
for k in list_iter(t) do //这里又不能加,加了就全部都输出nil
print(k)
end
太没规律了,就因为表 跟 迭代器的问题? 迭代器直接就可以遍历,pairs 实现方式,到底是怎么实现的呢??
迭代器提供了一个上一次调用的状态与下一次调用成功状态。pairs就没有这种机制。
- lua 之for循环 疑问。
- for循环的疑问
- Lua for循环
- lua(1) for循环
- lua笔记 for循环
- Lua for循环
- lua for循环
- lua 的for循环
- Lua 中的另类For循环
- Lua之循环
- lua学习小结之lua循环
- 关于lua数字for循环的实现
- 关于lua数字for循环易错点
- lua中数值for循环的理解
- lua关于for循环不能改变控制变量
- Lua的泛型for循环
- Cocos2d-Lua之循环语句
- Linux for循环之列表for循环
- 运算符重载
- 显示一个进程的内存状态
- lua之闭包
- cocos2dx移植eclipse后,用ndk来开发,实现放弃vs,eclipse写c++代码
- 机器学习中的范数规则化之(二)核范数与规则项参数选择
- lua 之for循环 疑问。
- MiniGUI实现扩展控件
- 学习miniGUI的问题
- gdb调试程序
- Loadrunner之java脚本环境场景配置
- lua5.1.5编译
- lua 5.1.4 关于loadstring的问题
- lua 之 协同
- 每天快走20分钟可以延年益寿