当前位置: 首页 > news >正文

lua中判断2个表是否相等

当我们获取 table 长度的时候无论是使用 还是 table.getn 其都会在索引中断的地方停止计数,而导致无法正确取得 table 的长度,而且还会出现奇怪的现象。例如:t里面有3个元素,但是因为最后一个下表是5和4,却表现出不一样的长度。

所以通常准确计算table的长度就是通过pairs来遍历(ipairs只能针对从数字1开始的连续索引,碰到不是数字或者不连续的就停止遍历

local function getTableLength(t)local length=0for k,v in pairs(t) dolength = length+1endreturn length
endlocal function isEqualTable(tab1,tab2)local typer1,typer2 = type(tab1),type(tab2)if "table"~=typer1 and "table"~=typer2 then return tab1==tab2 endif "table"==typer1 and "table"~=typer2 then return false endif "table"~=typer1 and "table"==typer2 then return false endif tab1 == tab2 then return true endif getTableLength(tab1) ~= getTableLength(tab2) then return false endfor k,v in pairs(tab1) dolocal tmp = tab2[k]return isEqualTable(v,tmp)endreturn true
end

local t1 = {a = 1, b = 2}
local t2 = {b = 2, a = 1}local t3 = {a = 1, b = 2, c = 3}local t7={"a","b",c={{a = 1, b = 2}}}
local t8={"a","b",c={{b = 2, a = 1}}}print(isEqualTable(t1, t2)) -- 输出: true
print(isEqualTable(t1, t3)) -- 输出: false
print(isEqualTable(t7, t8)) -- 输出: true

http://www.lryc.cn/news/389325.html

相关文章:

  • uni-app 自定义支付密码键盘
  • 抖音微短剧小程序源码搭建:实现巨量广告数据高效回传
  • springboot数字化医院产科系统源码
  • uniapp微信接口回调 response.sendRedirect nginx 报404错误
  • Python系统教程02
  • JS面试题6——深拷贝和浅拷贝
  • Scrapy实现关键词搜索的数据爬取
  • 【Linux】ip命令详解
  • 软降工程学系统实现
  • 001 SpringMVC介绍
  • 深入解析scikit-learn中的交叉验证方法
  • 分布式kettle调度管理平台简介
  • 002-基于Sklearn的机器学习入门:基本概念
  • ubuntu 默认的PATH配置
  • JAVA妇产科专科电子病历系统源码,前端框架:Vue,ElementUI
  • 代码随想录算法训练营Day56|所有可达路径、797.所有可能的路径
  • DNF手游鬼剑士攻略:全面解析流光星陨刀的获取与升级!云手机强力辅助!
  • npm创建一个空的vue3项目的方法或者pnpm创建vue3项目
  • LSH算法:高效相似性搜索的原理与Python实现I
  • cesium 添加 Echarts图层(人口迁徒图)
  • Windows下快速安装Open3D-0.18.0(python版本)详细教程
  • 无法下载 https://mirrors./ubuntu/dists/bionic/main/binary-arm64/Packages
  • 最新CRMEB商城多商户java版源码v1.6版本+前端uniapp
  • 【开发环境】MacBook M2安装git并拉取gitlab项目,解决gitlab出现Access Token使用无效的方法
  • Flask-Session使用Redis
  • Redis缓存管理机制
  • 初学嵌入式是弄linux还是单片机?
  • 【基础算法总结】分治—快排
  • [C++]——同步异步日志系统(1)
  • python 第6册 辅助excel 002 批量创建非空白的 Excel 文件