lua中的泛型for用法: for i, v in talbe do....end lua中,in pairs的循环的顺序问题

Lua\u4e2d\uff0c\u6cdb\u578bfor\u5faa\u73af\u904d\u5386table\u65f6\uff0cipairs\u548cpairs\u7684\u533a\u522b

pairs\u904d\u5386table\u4e2d\u7684\u6240\u6709\u952e\u503c\u5bf9\uff0c\u4e0d\u4f1a\u6709\u9057\u6f0f\uff0c\u8f93\u51fa\u662f\u65e0\u5e8f\u7684\u3002
ipairs\u904d\u5386\u6240\u6709\u6570\u5b57\u4e0b\u6807\u7684\u952e\u503c\u5bf9\uff0c\u8f93\u51fa\u4e25\u683c\u6309\u71671,2,3,4...\u7684\u987a\u5e8f\uff0c\u4f46\u4e00\u65e6\u78b0\u5230key\u4e0d\u5b58\u5728\u6216value\u4e3anil\u7684\u60c5\u51b5\uff0c\u5c31\u505c\u6b62\u904d\u5386\u3002

\u7528pairs\u5c31\u662f\u6ca1\u987a\u5e8f\uff0c\u968f\u673a\u7684\uff0c\u8ddfk\u7684\u54c8\u5e0c\u503c\u6709\u70b9\u5173\u7cfb\u3002
t={1,2,3,4,5,6,7,8,9}--\u5fc5\u987b\u662f\u8fd9\u6837\u7684table\uff0c\u5143\u7d20\u5fc5\u987b\u8981\u8981\u7528table.insert\u63d2\u5165\uff0c\u7528ipairs\u904d\u5386\uff0c\u8fd9\u79cdtable\u76f8\u5f53\u4e8et[1]=1,t[2]=2...t[9]=9,\u5982\u679c\u540e\u9762\u6709\u4e2at[11]=11,\u90a3\u4e48\u7528ipairs\u5c31\u904d\u5386\u4e0d\u5230\u3002\u539f\u56e0\u662ftable\u91cc\u9762\u5206\u4e24\u90e8\u5206\uff0c\u6570\u7ec4\u548chash\u8868\uff0ct[1],t[2]\u7b49\u8fde\u7eed\u7684\u662f\u76f8\u5f53\u4e8e\u6570\u7ec4\u90e8\u5206\uff0c\u4e0d\u8fde\u7eed\u7684\u7d22\u5f15\u90fd\u653ehash\u8868\u91cc\u4e86\uff0c\u987a\u5e8f\u4e0d\u4e00\u5b9a\u3002
str = ""
for i,v in ipairs(t) do
str = str..v..","
end
print(str)

原因如下:

for i,v in pairs(t) do ... end,这其实只是泛型for的普通用法,for有2种用法
第一种是 for i = 1,10,1 do print(i) end 这种 当计数器用的。


第二种是泛型for,for a,b,c,d,e in fun1(para) do ... end。


等价于,local fun2 = fun1(para),while true do a,b,c,d,e = fun2(), if a then,break else ......(这里就是上面写在do里面的内容) end,这里要求的就是fun1的返回值必须是一个迭代函数 不然就计算不完了。



for i,v in pairs(t) do ... end
这其实只是泛型for的普通用法
for有2种用法
第一种是 for i = 1,10,1 do print(i) end 这种 当计数器用的
第二种是泛型for,for a,b,c,d,e in fun1(para) do ... end
等价于
local fun2 = fun1(para)
while true do
a,b,c,d,e = fun2()
if a then
break
else
......(这里就是上面写在do里面的内容)
end
end
这里要求的就是fun1的返回值必须是一个迭代函数 不然就计算不完了

table是lua里的数据类型,比如 t = {"a","b","c"},t就是个table,
用 for i,v in ipairs(t) do print(i,v) end
执行就打印:
1 a
2 b
3 c

表格

扩展阅读:jazzhiphop女rapper ... 为什么love写成luv ... jaeger-lecoultre手表 ... lay产卵的各种形式和用法 ... luv指女孩什么意思 ... lua for android ... 安卓lua一键解密工具 ... lie lay lied巧记口诀 ... 公路车飞轮 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网