零基础学lua第七天---table中
作者:互联网
一、前言
前面我们讲过了table最基础的一些数据结构的使用和方法的使用,今天我们来讲讲其它数据结构的实现以及lua中的模块和包的概念。
二、集合
我们学过Python都知道,集合是可以去除重复数据的,因此首先我们需要数据去重。然后集合是可以进行交并差的运算的,不过这里由于我们还没有学到元表和元方法,因此目前还无法实现给table添加方法并使用,因此这里我们只实现它的数据去重功能,如下:
这样就实现了数据去重。
三、队列
队列好比栈,先来看看进栈的实现方法,如下:
我们分为左边和右边的区别,可以直接指定位置和值,若是左边进栈,就在指定的位置的前一位插入,若是右边进栈,则在指定位置的后一位插入;再来看看出栈,如下:
这里我们没有考虑数据进栈出栈时数据的位置是否越栈,因为还没学到异常和错误处理的关系,等后面学了大家加进去就可以了。
四、模块
lua是由变量、函数常量等已知元素组成的table,因此模块就等于是一个table。下面我们来创建一个模块,如下:
我们声明了一个模块,并且模块中有常量和函数,而且我们还能看到模块是由table变成的。
五、调用模块
写完了模块当然要调用啦,调用的方法有三种,如下:
1.require
该方法会搜索目录来加载同一个模块,并且不重复,只不过要想让require检索到lua模块我们需要设置它的模块路径,如下:
package.path="C:/Users/Administrator/Desktop/?.lua"
然后我们就可以引入模块了,如下:
2.dofile
前面的方法虽然效率高但是比较麻烦,我们可以直接引入文件,如下:
不过dofile会在每次载入模块文件的时候都执行,因此它的效率比较低。
3.loadfile
如果你想再载入模块文件的时候不执行文件的话了,我们就可以使用loadfile,如下:
此时读取的模块文件是被当成了一个函数被返回了。
六、总结
纵观本文,发觉lua中的table实在是太重要了,好多实现都必须使用table,下篇文章我们将完结table的所有知识点。
标签:如下,---,lua,模块,table,进栈,我们 来源: https://blog.51cto.com/u_9736252/2781973