博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lua(十二)——表
阅读量:1985 次
发布时间:2019-04-27

本文共 829 字,大约阅读时间需要 2 分钟。

一:创建表

在Lua中,表的创建是通过构造表达式来完成

——最简单的表是{},用来创建一个空表
——也可以像创建字典一下初始化一个表
——也可以像创建数组一样初始化一个表

表的索引可以是数字或字符串:


二:访问元素

——用键值对方式初始化的表用点或者用中括号(中括号里面必须是字符串)去访问

——用数组方式初始化的表直接用索引下标访问就可以(Lua中的索引下标默认是从1开始,索引可以为负数)


表与列表,字典等一样不固定长度大小,可以增添,删除,修改元素

注意:增添元素与删除元素都不会改变索引下标,而插入元素和移除元素会改变索引下标


三:增添元素


四:修改元素


五:删除元素


六:插入元素

插入元素会影响之前表中元素的位置


七:移除元素

只能用于数组方式初始化的表

移除元素会影响之前表中元素的位置

移除元素table.remove与删除元素赋nil的区别:

删除元素赋nil不会删除当前索引下标只是把当前索引下标元素置为nil,而移除元素table.remove会移除当前索引下标的元素,后面的元素依次往前排


八:排序元素(根据ASCII码升序排序)

排序的表中的元素必须为同一类型(不能同时有数字类型和字符串类型)


九:获取表元素的最大下标

 


十:获取表的长度

table.getn与#相同,都只能获取到下标连续数组类型的表的长度


十一:拼接元素


十二:表类型可以理解为是一个引用类型

将tab1赋值给tab2后相当于tab1与tab2两个变量都引用了同一块内存空间(指向了同一块内存空间)

所以通过tab1和tab2访问的数据是一样的,所以修改了tab1中的索引下标对应的元素也就等同于修改了tab2中的索引下标对应的元素
但是如果只销毁了tab1或者tab2并不代表把它们引用的内存空间销毁,因为当前有两个变量引用着这块内存空间,只是当前销毁的变量不存在了,但是指向的内存空间仍然存在。只有当把这块内存空间的所有引用都销毁了,这块内存空间才会被销毁

转载地址:http://ctyvf.baihongyu.com/

你可能感兴趣的文章
搜索中的TSA(树搜索算法) & GSA(图搜索算法) & UCS(代价一致) & CSP(约束满足问题)
查看>>
位图索引Bitmap indexes
查看>>
YOLO算法(二)—— Yolov2 & yolo9000
查看>>
YOLO算法(三)—— Yolov3 & Yolo系列网络优缺点
查看>>
Python的__future__模块
查看>>
Paper reading —— Semantic Stereo Matching with Pyramid Cost Volumes(SSPCV-Net)
查看>>
计算机视觉中的cost-volume的概念具体指什么(代价体积)
查看>>
Paper reading——Pyramid Stereo Matching Network(PSM-Net)
查看>>
启发函数heuristic 与 A*
查看>>
Image Pyramid(图像金字塔)
查看>>
Oracle 作业记录
查看>>
putty连接AWS配置(multimedia project)
查看>>
Hourglass Network 沙漏网络 (pose estimation姿态估计)
查看>>
OpenCV实战(二)——答题卡识别判卷
查看>>
目标检测神经网络的发展历程(52 个目标检测模型)
查看>>
Boundary loss 损失函数
查看>>
神经网络调参实战(一)—— 训练更多次数 & tensorboard & finetune
查看>>
tensorflow使用tensorboard进行可视化
查看>>
神经网络调参实战(二)—— activation & initializer & optimizer
查看>>
凸优化 convex optimization
查看>>