Lua 迭代器遍历

简介: Lua 迭代器

**迭代器遍历
主要用来遍历表

获取长度其实并不准确,一般不要使用#来遍历表(除非你很确定这里面的元素都是不间断,中间也没有为空的情况)**

在这里插入图片描述

ipairs迭代器遍历

  • ipairs遍历还是从1开始遍历的,小于或等于0的不遍历
--ipairs
--先搞一个自定义索引
a = {[0]=1,2,[-1]=3,6}

for i,k in ipairs(a) do
    print("ipairs遍历"..i..'_'..k)
end

在这里插入图片描述

pairs迭代器遍历

pairs可以遍历所以信息,建议使用其遍历各种不规则的表

--pairs迭代器遍历
b = {[0]=0,1,2,[3]=3,[5]=5,[-1]=-1,6}

for k,v in pairs(b) do
    print(k,v)
end

在这里插入图片描述

ipairs是index索引,所以从1开始,pairs是全部遍历

总结

tab1 = {[0]="1",[1]="1",[3]='3',key5 = "5",key6="6",key7="7"};

--输出不完整
--[[
    跟C#不一样,从序号1开始便利,前面都不会被遍历
    中间断了也不会遍历
    key是文字也不会遍历
--]]
print("--------------ipairs")
for k,v in ipairs(tab1) do
    print(k..'  '..v)
end

--输出顺序不定
print("------------pairs")
for k,v in pairs(tab1) do
    print(k.."   "..v)
end
相关文章
|
XML Java 数据格式
【Lua基础 第2章】lua遍历table的方式、运算符、math库、字符串操作方法
lua遍历table的方式、运算符、math库、字符串操作方法
684 0
【Lua基础 第2章】lua遍历table的方式、运算符、math库、字符串操作方法
|
索引 容器
lua语言——迭代器
lua语言——迭代器
125 0
|
算法 索引 容器
Lua基础---迭代器
官方的文档说: 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址 在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。
904 0
|
Windows
lua使用io.open跨平台文件夹遍历匹配查找
-- Desc :实现在LUA_PATH中的lua文件中遍历寻找没用到PNG_PATH路径下的png图片,并将其打印出来。 -- Date :12:49:28 2014-09-04 1 print("Lua Script Start") 2 3 function getFileName( path ) 4 len = string.
1362 0
lua跨平台文件夹遍历匹配查找
require"lfs" --[[Desc:在B路径D文件中下 搜寻A路径下的没用到的C类文件;      并且将没用到的B类文件名称打印出来; 设置好路径拖到lua自带编辑器中即可运行之;]] --目标所在路径(A)(eg:png所在路径) PNG_FILE_PAT...
956 0
|
1月前
|
缓存 分布式计算 NoSQL
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
25 2
|
5月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
227 0
|
2月前
|
存储 JSON Ubuntu
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?