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库、字符串操作方法
961 0
【Lua基础 第2章】lua遍历table的方式、运算符、math库、字符串操作方法
|
索引 容器
lua语言——迭代器
lua语言——迭代器
166 0
|
算法 索引 容器
Lua基础---迭代器
官方的文档说: 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址 在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。
986 0
|
开发工具
lua跨平台文件夹遍历匹配查找
require"lfs" --[[Desc:在B路径D文件中下 搜寻A路径下的没用到的C类文件;      并且将没用到的B类文件名称打印出来; 设置好路径拖到lua自带编辑器中即可运行之;]] --目标所在路径(A)(eg:png所在路径) PNG_FILE_PAT...
1040 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.
1454 0
|
7月前
|
缓存 NoSQL 搜索推荐
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
本文介绍了如何通过Lua脚本在Redis中实现分布式锁的原子性操作,避免并发问题。首先讲解了Lua脚本的基本概念及其在Redis中的使用方法,包括通过`eval`指令执行Lua脚本和通过`script load`指令缓存脚本。接着详细展示了如何用Lua脚本实现加锁、解锁及可重入锁的功能,确保同一线程可以多次获取锁而不发生死锁。最后,通过代码示例演示了如何在实际业务中调用这些Lua脚本,确保锁操作的原子性和安全性。
393 6
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
|
7月前
|
NoSQL Redis 数据库
Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
通过本文的介绍,我们详细讲解了 Lua 脚本在 Redis 中的作用、`eval` 命令的使用方法以及 `redis.call` 和 `redis.pcall` 的区别和用法。通过合理使用 Lua 脚本,可以实现复杂的业务逻辑,确保操作的原子性,并减少网络开销,从而提高系统的性能和可靠性。
257 13
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
458 0