博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
04Table
阅读量:6676 次
发布时间:2019-06-25

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

01:table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。也可以在表里添加一些数据,直接初始化表

--创建一个空表local table2={}print(type(table2))--初始化表table2={1,2,5,8,89,8}

02:Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串

a={}--索引是stringa={key=1,key1=2}print(a.key1)print(a[2])--索引是numbersum={"apple","pear","orange"}for k ,v in pairs(a) doprint(k ..":"..v)end2nilkey:1key1:2
--添加数据s={}s.key="躺下后"s["key1"]="555"s[10]=100print(s.key)print(s[10])--修改数据 覆盖s.key=888print(s.key)--删除数据s.key=nilprint(s.key)2nilkey:1key1:2躺下后100888nil

03:不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始

local a={"1","2" ,"3" ,"4"}for k,v in pairs(a) doprint(k..":"..v)end1:12:23:34:4

04:table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil

table2={} --空表print(type(table2))table2={5,6,8,4}for k,v in pairs(table2) doprint(k..":"..v)endtable3={key1=22,key2=66}print(table3.key1)print(table3["key1"])--1:5--2:6--3:8--4:4--22--22

04.表的插入

table.insert(arrar, index, value);
table.insert(数组,键,值)
– 下面添加 键为index的值,如果原来数组中有键为index的值依次向后从新排列。
– 如果我们省略了键,只填入数组名 和 值,就会默认把新添加的值放入数组的最后一位。

local array = {
1, 2, 3, 4, 5}table.insert(array, 1, 20000)for k ,v in pairs(array) doprint(k,v)end1 200002 13 24 35 46 5
local array = {
1, 2, 3, 4, 5}table.insert(array, 20000)for k ,v in pairs(array) doprint(k,v)end1 12 23 34 45 56 20000

从数组中删除元素 table.remove(数组名,键)

–table.remove(数组名) 默认删除最后一个元素

local array = {
1, 2, 3, 4, 5}table.remove(array,1);for k,v in pairs(array) doprint(v);end2345
local array = {
1, 2, 3, 4, 5}table.remove(array);for k,v in pairs(array) doprint(v);end1234

06.table.sort()函数

table.sort(数组,排序规则) 升序排序

local array = {
10, 20, 3, 4, 5}table.sort(array);for k,v in pairs(array) doprint(v);end3451020

07.创建自己函数的表来作为自己的函数库

表中存储函数

local array={
};array.fun1=function()print("数学学起来很难");endarray.fun2=function()print("语文学起来很容易");endarray.fun1();array.fun2();数学学起来很难语文学起来很容易

08.table.concat

local string_concat = {
"string", "int", "char", "float", "double"};print(table.concat(string_concat));stringintcharfloatdouble
local string_concat = {
"string", "int", "char", "float", "double"};print(table.concat(string_concat,"|"));string|int|char|float|double

原型:table.maxn (tab_table)

解释:返回一个表tab_table中的最大正数索引,如果没有正数索引的话返回0。
maxn 返回最大数字key

local array = {
10, 20, 3, 400, 1,2};local max=table.maxn(array);print(max);6
a={
1,3,a='b',[6]='six',[10]='ten'}local max=table.maxn(a);print(max);10
a={
a='b','six','ten'}local max=table.maxn(a);print(max);0

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

你可能感兴趣的文章
俞敏洪励志语
查看>>
开源|基于TensorFlow的聊天机器人-ErGo
查看>>
lucene4.0入门1
查看>>
Svn结合hook实现自动更新及多Project管理更新
查看>>
第三十六讲:tapestry表单组件详解之PasswordField
查看>>
Ubuntu11.10下安装JDK+Eclipse+Maven
查看>>
sgu 222
查看>>
让spring-data-jpa解放你的DAO
查看>>
58沈剑:架构师的平凡之路
查看>>
Hibernate问题-read-write缓存策略
查看>>
C/C++语言中“:”的使用方法
查看>>
sql中实现汉字的拼音首字母查询
查看>>
Android 动态布局 (代码布局)
查看>>
MYSQL备份和恢复
查看>>
spark安装:在hadoop YARN上运行spark-shell
查看>>
Docker存储驱动之ZFS简介
查看>>
根据sql,一键生成excle 格式, 再通过 zip包压缩为zip
查看>>
PL/SQL Developer 添加数据
查看>>
PHP实时统计文件下载次数
查看>>
linux eth0 改eth1 在改ip
查看>>