Lua table

news/2024/4/19 13:47:08/文章来源:https://blog.csdn.net/m0_52361859/article/details/129142304

Table(表)

table 是 lua 中唯一的数据结构,可以用于表示 数组字典结构体。它非常强大,可以储存任何数据类型。

table 的数据单元为一对键值。 table 是不固定大小的,你可以根据自己需要进行扩容。

构造方式

table = {} --空 tabletable = {1, 2, 3,}  -- arraytable = {["1"] = 1, ["2"] = 2, ["3"] = 3,} --diractorytable.x = 1 --strcut

构造方式有多种

  • 记录式(数组较为常见)
table = {1, 2, 3,}
  • 列表式
table = {x = 1, y = 2, z = 3,}
  • 通用形式(字典较为常见)
table = {["1"] = 1, ["2"] = 2, ["3"] = 3,}

由于在查询键的类型可以出现不同,如 number 与 string 之间的转换,需要注意。

同时 整型类型 与 浮点类型之间在table中是一致的,浮点型 2.0 等于 整型 2,不存在分歧问题,table会将整型浮点转为 number

遍历

table = {}
for i = 1, 1000 dotable[i] = i
end--遍历
for i = 1, #table doprint(table[i])
end

table 表示数组时,索引值从 1 开始,通过 # 来获得数组是大小,# 只能获得数组序列的大小,且序列中间不能为 nil

nil 意味移除该元素,所以当不需要此数据时,将其设为 nil,cg会将其收回。

print(table[#table]) --输出最后一个值
table[#table] = nil --移除最后一个元素
table[#table + 1] = value --在末尾添加元素

for 遍历 table 的两种方式

  • ipairs 迭代器 - 主要用于数组的迭代
  • pairs 迭代器 - 主要用于字典的迭代
t = {1, 2, 3,}
--[[i 为索引v 为值
]]
for i, v in ipairs(t) doprint(t[i])
end
--[[k 为键 v 为值
]]
for k, v in pairs(t) doprint(k .. " " .. v)
end

table函数

方法用途
table.concat(table, [, sep, [, start [, end]]])concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开。
table.insert (table, [pos,] value):在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾.
table.remove (table [, pos])返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起。
table.sort (table [, comp])对给定的table进行升序排序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_72067.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fortinet推出新一代自研安全芯片,跨所有网络边缘加速网络与安全融合

专注网络与安全融合的全球网络安全领导者 Fortinet(NASDAQ:FTNT),近日宣布推出新一代自研安全芯片 FortiSP5,作为 Fortinet ASIC 技术的最新突破,有力推动了分布式网络边缘安全的重大飞跃。FortiSP5 源自 F…

快鲸scrm发布快递行业私域运营解决方案

现如今,快递行业竞争格局日益激烈,前有“四通一达”等传统快递企业,后有自带互联网基因、绑定电商流量新贵快递企业,如菜鸟、京东等。在这一背景下,很多快递企业开启了增长破局之旅,他们纷纷搭建起私域运营…

0/1 nodes are available: 1 node(s) didn‘t match Pod‘s node affinity.

主要是需要确认你的yaml文件中是否有nodeSelector的配置,一般是因为k8s集群中没有相应的node节点匹配导致 这个错误消息表明您正在尝试在不符合Pod的节点亲和性规则的节点上运行Pod。这通常是由于节点选择器或节点亲和性规则设置不正确引起的。 以下是一些可能导致…

前端零基础入门-002-集成开发环境

本篇目标 了解市面上常用的前端集成开发环境(ide)掌握 HBuiberX 的使用:下载安装,新建项目、网页、运行网页。 内容摘要 本篇介绍了市面上流行的几款前端集成开发环境(ide),并介绍了 Hbuilde…

微软Docker学习记录(第二单元)

文章目录什么是容器?什么是软件容器化?什么是 Docker?Docker 体系结构Docker 引擎Docker 客户端Docker 服务器Docker 对象原文链接: https://learn.microsoft.com/zh-cn/training/modules/intro-to-docker-containers以下原文部分…

Softing dataFEED OPC Suite Extended新版本支持从XML文件中读取生产数据

Softing dataFEED OPC Suite Extended V5.25的新功能——“文件读取(File Read)”,支持访问XML文件中可用的过程数据。 (文件读取功能支持获取由XML文件提供的过程数据)dataFEED OPC Suite Extended是用于OPC通信和云连…

技术干货!如何玩转Salesforce测试类 (Test Class)?

测试类主要用于评估其他代码片段,确保一切正常且可靠地运行。这可以作为一种早期预警系统,提醒开发人员出现了错误或问题。 不同类型的程序化测试 测试类可以分为多种不同的类型,这改变了我们编写测试的方式及其预期结果。对于Apex测试类&…

R语言实现可理解的随机森林模型(Random Forest)——iml包

Random Forest 解释模型1. 介绍2. 理解随机森林运行机理2.1导入需要的包2.2 构建随机森林模型2.3 RF特征重要性:2.4 特征对预测结果的影响2.5 交互作用2.6 替代模型(Decision tree surrogate model)2.71. 介绍 机器学习模型通常可以很好地进…

儿童袖套上架美国亚马逊CPC认证

袖套,也称套袖。是戴在袖管外的套子,旨在保护衣服的袖管。通常戴时松垂于另外一只衣袖外面的袖子。美国CPC认证简介:CPC认证是Children’s Product Certificate的英文简称,CPC证书就类似于国内的质检报告,在通过相关检…

内网渗透(四十五)之横向移动篇-WinRM远程执行命令横向移动

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

PrivateLoader PPI服务发现RisePro恶意软件窃取分发信息

称为PrivateLoader的按安装付费(PPI)软件下载器服务正用于恶意软件RisePro的信息窃取。Flashpoint 于 2022 年 12月13日发现了新的窃取者,此前发现了在名为Russian Market的非法网络犯罪市场上使用该恶意软件泄露的“几组日志”。RisePro是一…

IDEA高效插件和设置

安装好Intellij idea之后,进行如下的初始化操作,工作效率提升十倍。 一. 安装插件 1. Codota 代码智能提示插件 只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。 原因是它学习了我的项目代码&…

墨菲安全参与信息通信软件供应链安全社区成员大会并获自主研发创新成果奖

2023年2月16日,首届ICT软件供应链安全治理论坛暨信息通信软件供应链安全社区第二届成员大会在北京成功举办,多位业界顶级专家与工业和信息化部网络安全管理局相关领导出席,为现场观众分享了关于软件供应链可持续性与安全治理行业的前瞻与思考…

Apache Shiro与Spring Security对比

Apache Shiro VS Spring Security 1.Spring Security 官方文档:https://spring.io/projects/spring-security#overview介绍: Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spr…

CAS底层原理及ABA问题

一、案例CAS是Java中Unsafe类里面的一个方法,它的全称是叫CompareAndSwap比较并交换的一个意思,它的主要功能是能够去保证在多线程的环境下对于共享变量修改的一个原子性。例如,比如说像这样一个场景,有一个成员变量state&#xf…

【分享】订阅卖家云集简云连接器同步销售出库数据至卖家云系统

方案场景 在企业进行数字化转型过程中,数据割裂是企业面临的最大困难,钉钉作为现企业流行的常用办公系统,与第三方ERP系统之间存在着数据割裂的现象,例如,钉钉与卖家云系统,企业员工原来的办公方式是在钉钉…

Vue基础14之TodoList组件自定义事件、全局事件总线、TodoList全局事件总线

Vue基础14TodoList-组件自定义事件先改Header和Footer子组件,List先不考虑App.vueMyHeader.vueMyFooter.vue全局事件总线实现思路正规写法main.jsApp.vueStudent.vueSchool.vue总结:全局事件总线(GlobalEventBus)TodoList案例&…

修复 K8s SSL/TLS 漏洞(CVE-2016-2183)指南

作者:老 Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 前言 测试服务器配置 主机名IPCPU内存系…

5.10 BGP属性-MED

5.4.4配置BGP MED属性控制选路 1. 实验目的 熟悉BGP MED属性控制选路的应用场景掌握BGP MED属性控制选路的配置方法2. 实验拓扑 实验拓扑如图5-10所示: 图5-10:配置BGP MED属性控制选路 3. 实验步骤 (1) 网络连通性 R1…

QMap 判断是否value是否已经存在,结合Sleep函数测试

网上查了资料,基本说的都是通过.value判断是否已经之前的key值,但是尝试.了一下发现有.key的函数,对比着来就感觉这个函数是用来判断是否已经存在value值,于是开始百度也几乎没有找到相关资料,只好自己看官方文档&…