其他分享
首页 > 其他分享> > 零基础学lua第十五天---最后归纳下

零基础学lua第十五天---最后归纳下

作者:互联网

一、前言

本篇是小编对于学习lua的一个总结,至此我们就告一段落了,下面请看涉及到lua的一些其它内置函数。

二、setfenv、getfenv

这两个函数的设定主要是为了解决变量命名时的重复冲突所存在的,有了他们,即使变量重复也不会被覆盖;因此,我们需要先设置一个函数的环境,如下:

08510b9bd15537c1ec486f13e9f34341.jpeg

可以看到,我们把函数aa放到了表中,然后就可以通过函数环境来获取到表中的值。相当于aa就是键,而ff就是值,我们可以通过获取函数环境的函数来获取到ff的值。当然setfenv不仅仅可以用函数来作为键,也可以使用数字来作为键,从1开始,1为当前函数,2为调用自己的函数,3则是调用自己函数的函数,依次类推,如下:

a4899a16df2a1999d8082ab8e46a828b.jpeg

此时我们可以看到,使用系统函数print打印报错了;其实这是因为我们将正在调用getfenv这个函数的函数设置到了一个空table中,因此我们需要使用全局变量来进行访问,如下:

9fa9a52966426e0ae21cebe0ee530518.jpeg

此时就可以正常访问,不过如果你脱离了ff,任何变量都是无法正常访问的。

三、loadstring

前面我们在读取lua模块的时候使用过load loadfile ,不过lua中还有个loadstring函数我们还没了解过,下面请看:

de9c43f76786082858a239ad7cd4e698.jpeg

可以看到,其实loadstring的功能就和eval差不多,都是可以执行字符串中的内容。

四、select

这个函数可以返回指定索引后的所有值,当然这个索引必须小于值的长度,否则无效,如下:

267b3e7d6453b83a062120085c1b352b.jpeg

如果你想要知道总共有多少个返回参数的话,可以把数字换为#即可,如下:

5f7ea5476b167bac832f6e5a1cd4b98b.jpeg

五、随机数

这个概念在编程时显得尤为重要,很多时候都会用到随机数,随机数存在于数学函数中,之所以没把数学函数拿出来单独讲,主要是因为太过于简单,没什么讲的必要,在这里我们只讲讲随机数,如下:

6524081f4a0229f0cd4080ce50a3fd65.jpeg

随机数函数里没有值则返回从0到1的小数,有的话就返回固定范围内的整数,如果我们想要随机数一直保持不变就需要给他设置一个随机数种子,如下:

b7fe689778810cddefa85628ec7cec0a.jpeg

这样就不会改变了。

六、utf8编码

新的lua版本支持utf8编码,这里lua5.4完美支持,它可以直接将一些字符串或者数字转换为utf8编码,如下:

19f8520879907b5f23674d050e73f466.jpeg

七、cmd输入输出

我们之前使用输入输出只是对文件进行了操作,其实我们还可以通过cmd来进行输入输出,如下:

d6ddeaa6a4a7b2cbaebe69a3b85322db.jpeg

这样就可以将输入的数字返回了,这样可用于用户交互。

八、总结

到这里lua的基础知识就全部讲完了,相信大家一定有很多收获吧,虽然lua内置的模块并没有多少功能,一切都是以三方的模块或者调用c语言为主,但是还是挺简单的。


标签:函数,可以,如下,---,lua,随机数,第十五天,我们
来源: https://blog.51cto.com/u_9736252/2807901