加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Lua table(表)

发布时间:2020-12-14 21:53:50 所属栏目:大数据 来源:网络整理
导读:Lua table(表) table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。 Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。 Lua table 是不固定大小的,你可以根据自己需要进行扩容。 Lua也是通

Lua table(表)

table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。

Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。

Lua table 是不固定大小的,你可以根据自己需要进行扩容。

Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 例如string.format表示使用"format"来索引table string。


table(表)的构造

构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:

-- 初始化表
mytable ={}

指定值
mytable[1]= "Lua"移除引用 nil
 lua 垃圾回收会释放内存

当我们为 table a 并设置元素,然后将 a 赋值给 b,则 a 与 b 都指向同一个内存。如果 a 设置为 nil ,则 b 同样能访问 table 的元素。如果没有指定的变量指向a,Lua的垃圾回收机制会清理相对应的内存。

以下实例演示了以上的描述情况:

 以上代码执行结果为:

mytable 的类型是 	table
mytable 索引为 1的元素是 	Lua wow  	修改前修改后 	nil

Table 操作

以下列出了 Table 操作常用的方法:

4
序号 方法 & 用途
1 table.concat (table [,sep [,start [,end]]]):

concat是concatenate(连锁,连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素,元素间以指定的分隔符(sep)隔开。

2 table.insert (table,[pos,] value):

在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选,默认为数组部分末尾.

3 table.maxn (table)

指定table中所有正数key值中最大的key值. 如果不存在key值为正数的元素,则返回0。(Lua5.2之后该方法已经不存在了,本文使用了自定义函数实现)

table.remove (table [,pos])

返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选,默认为table长度,即从最后一个元素删起。

5 table.sort (table [,comp])

对给定的table进行升序排序。

接下来我们来看下这几个方法的实例。

Table 连接

我们可以使用 concat() 方法来连接两个 table:

 执行以上代码输出结果为:

 插入和移除 

以下实例演示了 table 的插入和移除操作:

4的元素为 	mango
 	grapes
最后一个元素为移除后最后一个元素为nil

Table 排序

以下实例演示了 sort() 方法的使用,用于对 Table 进行排序:

排序前
	banana
	orange
3	apple
	grapes
排序后	grapes
	orange

Table 最大值

table.maxn 在 Lua5.2 之后该方法已经不存在了,我们定义了 table_maxn 方法来实现。

以下实例演示了如何获取 table 中的最大值:

function table_maxnt
    local mn 0 v  pairs
        if< k then
            mn  k
        return mn

tbl {["a""b""c"26"z""tbl 长度 " #tbl)"tbl 最大值 "tbltbl 长度 	最大值26

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读