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

Lua table

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.lryc.cn/news/15067.html

相关文章:

  • JavaScript:使用for in不是一个很好的抉择
  • Go语言学习小笔记(一)
  • 前端Docker部署方案
  • Java——无重叠区间
  • 数据库和数据表创建与管理操作
  • buu [ACTF新生赛2020]crypto-rsa3 1
  • 知识库:在医疗行业的知识管理有着怎样的意义与实际影响?
  • 带你一步步搭建Web自动化测试框架
  • Redis进阶-缓存问题
  • VS Code Spring 全新功能来了!
  • 关于大数据导入流程引擎ccflow的方案
  • AI 生成二次元女孩,免费云端部署(仅需5分钟)
  • 掌握MySQL分库分表(六)解决主键重复问题--Snowflake雪花算法
  • Melis4.0[D1s]:1.启动流程(与adc按键初始化相关部分)跟踪笔记
  • GNU make 中文手册 第三章:Makefile 总述
  • 简历的专业技能怎么写?排版需要注意的事项
  • 【Git】为什么需要版本控制?版本控制工具有那些?
  • SSH远程执行Python3 Error: UnicodeEncodeError: ‘ascii‘ codec
  • 极简TypeScript教程--面向对象
  • java TCP/UDP、Socket、URL网络编程详解
  • 【C语言】宏
  • 【测试面试】自我分析+功能+接口自动化+性能测试面试题(大全),知己知彼百战百胜......
  • ASE4N65SE-ASEMI高压MOS管ASE4N65SE
  • MyBatis概述环境搭建(一)
  • 3.8国际妇女节即将到来,跨境卖家如何做好选品和营销?
  • Glue Connector 和 Connection 的关系与区别
  • 如何使用ngxin的 upstream
  • Java数组,超详细整理,适合新手入门
  • 1.3数据传输控制方式:IO数据传输控制方式、程序控制(查询)方式、程序中断方式、DMA方式、通道方式、I/O处理机
  • Linux 设置语言