其他分享
首页 > 其他分享> > 零基础学lua第七天---table中

零基础学lua第七天---table中

作者:互联网

一、前言

前面我们讲过了table最基础的一些数据结构的使用和方法的使用,今天我们来讲讲其它数据结构的实现以及lua中的模块和包的概念。

二、集合

我们学过Python都知道,集合是可以去除重复数据的,因此首先我们需要数据去重。然后集合是可以进行交并差的运算的,不过这里由于我们还没有学到元表和元方法,因此目前还无法实现给table添加方法并使用,因此这里我们只实现它的数据去重功能,如下:

49cc6426ba506735de1e260c9f8d00f9.jpeg


这样就实现了数据去重。

三、队列

队列好比栈,先来看看进栈的实现方法,如下:

2797c281d156132c946e3fc73a5be42d.jpeg


我们分为左边和右边的区别,可以直接指定位置和值,若是左边进栈,就在指定的位置的前一位插入,若是右边进栈,则在指定位置的后一位插入;再来看看出栈,如下:

337a0318c81029eef64ec86a1485ae99.jpeg


这里我们没有考虑数据进栈出栈时数据的位置是否越栈,因为还没学到异常和错误处理的关系,等后面学了大家加进去就可以了。

四、模块

lua是由变量、函数常量等已知元素组成的table,因此模块就等于是一个table。下面我们来创建一个模块,如下:

7db8d258af85ea3f44590b725117945d.jpeg

我们声明了一个模块,并且模块中有常量和函数,而且我们还能看到模块是由table变成的。

五、调用模块

写完了模块当然要调用啦,调用的方法有三种,如下:

1.require

该方法会搜索目录来加载同一个模块,并且不重复,只不过要想让require检索到lua模块我们需要设置它的模块路径,如下:

package.path="C:/Users/Administrator/Desktop/?.lua"

然后我们就可以引入模块了,如下:

22f94ee0eaee24c30c5d0a89e6ed4a94.jpeg


2.dofile

前面的方法虽然效率高但是比较麻烦,我们可以直接引入文件,如下:

4f208559e6a7457ff1e92a552ceefda2.jpeg


不过dofile会在每次载入模块文件的时候都执行,因此它的效率比较低。

3.loadfile

如果你想再载入模块文件的时候不执行文件的话了,我们就可以使用loadfile,如下:

aab3087fde162a1c92e7a70754b3da4d.jpeg


此时读取的模块文件是被当成了一个函数被返回了。

六、总结

纵观本文,发觉lua中的table实在是太重要了,好多实现都必须使用table,下篇文章我们将完结table的所有知识点。


标签:如下,---,lua,模块,table,进栈,我们
来源: https://blog.51cto.com/u_9736252/2781973